Merge branch 'MK3' into MK3_Translations

This commit is contained in:
Alex Voinea 2019-11-07 17:02:45 +02:00
commit 1de353dd09
48 changed files with 10610 additions and 14184 deletions

14
.editorconfig Normal file
View File

@ -0,0 +1,14 @@
#-*-mode:conf-*-
# editorconfig file (see EditorConfig.org)
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
trim_trailing_whitespace = true
indent_style = space
indent_size = 4
tab_width = 4
max_line_length = 100

View File

@ -16,8 +16,8 @@ extern uint16_t nPrinterType;
extern PGM_P sPrinterName;
// Firmware version
#define FW_VERSION "3.8.0"
#define FW_COMMIT_NR 2684
#define FW_VERSION "3.8.1"
#define FW_COMMIT_NR 2869
// FW_VERSION_UNKNOWN means this is an unofficial build.
// The firmware should only be checked into github with this symbol.
#define FW_DEV_VERSION FW_VERSION_UNKNOWN

View File

@ -376,6 +376,10 @@ extern char dir_names[3][9];
extern int8_t lcd_change_fil_state;
// save/restore printing
extern bool saved_printing;
extern uint8_t saved_printing_type;
#define PRINTING_TYPE_SD 0
#define PRINTING_TYPE_USB 1
#define PRINTING_TYPE_NONE 2
//save/restore printing in case that mmu is not responding
extern bool mmu_print_saved;
@ -391,8 +395,6 @@ extern uint16_t print_time_remaining_silent;
extern uint16_t mcode_in_progress;
extern uint16_t gcode_in_progress;
extern bool wizard_active; //autoload temporarily disabled during wizard
extern LongTimer safetyTimer;
#define PRINT_PERCENT_DONE_INIT 0xff
@ -425,8 +427,6 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
void bed_check(float x_dimension, float y_dimension, int x_points_num, int y_points_num, float shift_x, float shift_y);
#endif //HEATBED_ANALYSIS
float temp_comp_interpolation(float temperature);
void temp_compensation_apply();
void temp_compensation_start();
void show_fw_version_warnings();
uint8_t check_printer_version();

View File

@ -142,10 +142,6 @@
//Macro for print fan speed
#define FAN_PULSE_WIDTH_LIMIT ((fanSpeed > 100) ? 3 : 4) //time in ms
#define PRINTING_TYPE_SD 0
#define PRINTING_TYPE_USB 1
#define PRINTING_TYPE_NONE 2
//filament types
#define FILAMENT_DEFAULT 0
#define FILAMENT_FLEX 1
@ -323,8 +319,6 @@ uint16_t print_time_remaining_normal = PRINT_TIME_REMAINING_INIT; //estimated re
uint8_t print_percent_done_silent = PRINT_PERCENT_DONE_INIT;
uint16_t print_time_remaining_silent = PRINT_TIME_REMAINING_INIT; //estimated remaining print time in minutes
bool wizard_active = false; //autoload temporarily disabled during wizard
//===========================================================================
//=============================Private Variables=============================
//===========================================================================
@ -365,7 +359,6 @@ bool Stopped=false;
Servo servos[NUM_SERVOS];
#endif
bool CooldownNoWait = true;
bool target_direction;
//Insert variables if CHDK is defined
@ -378,7 +371,7 @@ boolean chdkActive = false;
//! @{
bool saved_printing = false; //!< Print is paused and saved in RAM
static uint32_t saved_sdpos = 0; //!< SD card position, or line number in case of USB printing
static uint8_t saved_printing_type = PRINTING_TYPE_SD;
uint8_t saved_printing_type = PRINTING_TYPE_SD;
static float saved_pos[4] = { 0, 0, 0, 0 };
//! Feedrate hopefully derived from an active block of the planner at the time the print has been canceled, in mm/min.
static float saved_feedrate2 = 0;
@ -400,6 +393,9 @@ static bool setTargetedHotend(int code, uint8_t &extruder);
static void print_time_remaining_init();
static void wait_for_heater(long codenum, uint8_t extruder);
static void gcode_G28(bool home_x_axis, bool home_y_axis, bool home_z_axis);
static void temp_compensation_start();
static void temp_compensation_apply();
uint16_t gcode_in_progress = 0;
uint16_t mcode_in_progress = 0;
@ -623,7 +619,7 @@ void crashdet_cancel()
if (saved_printing_type == PRINTING_TYPE_SD) {
lcd_print_stop();
}else if(saved_printing_type == PRINTING_TYPE_USB){
SERIAL_ECHOLNPGM("// action:cancel"); //for Octoprint: works the same as clicking "Abort" button in Octoprint GUI
SERIAL_ECHOLNRPGM(MSG_OCTOPRINT_CANCEL); //for Octoprint: works the same as clicking "Abort" button in Octoprint GUI
SERIAL_PROTOCOLLNRPGM(MSG_OK);
}
}
@ -1238,6 +1234,21 @@ void setup()
plan_init(); // Initialize planner;
factory_reset();
if (eeprom_read_dword((uint32_t*)(EEPROM_TOP - 4)) == 0x0ffffffff &&
eeprom_read_dword((uint32_t*)(EEPROM_TOP - 8)) == 0x0ffffffff)
{
// Maiden startup. The firmware has been loaded and first started on a virgin RAMBo board,
// where all the EEPROM entries are set to 0x0ff.
// Once a firmware boots up, it forces at least a language selection, which changes
// EEPROM_LANG to number lower than 0x0ff.
// 1) Set a high power mode.
eeprom_update_byte((uint8_t*)EEPROM_SILENT, SILENT_MODE_OFF);
#ifdef TMC2130
tmc2130_mode = TMC2130_MODE_NORMAL;
#endif //TMC2130
eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); //run wizard
}
lcd_encoder_diff=0;
#ifdef TMC2130
@ -1349,20 +1360,6 @@ void setup()
// Enable Toshiba FlashAir SD card / WiFi enahanced card.
card.ToshibaFlashAir_enable(eeprom_read_byte((unsigned char*)EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY) == 1);
if (eeprom_read_dword((uint32_t*)(EEPROM_TOP - 4)) == 0x0ffffffff &&
eeprom_read_dword((uint32_t*)(EEPROM_TOP - 8)) == 0x0ffffffff) {
// Maiden startup. The firmware has been loaded and first started on a virgin RAMBo board,
// where all the EEPROM entries are set to 0x0ff.
// Once a firmware boots up, it forces at least a language selection, which changes
// EEPROM_LANG to number lower than 0x0ff.
// 1) Set a high power mode.
#ifdef TMC2130
eeprom_write_byte((uint8_t*)EEPROM_SILENT, 0);
tmc2130_mode = TMC2130_MODE_NORMAL;
#endif //TMC2130
eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); //run wizard
}
// Force SD card update. Otherwise the SD card update is done from loop() on card.checkautostart(false),
// but this times out if a blocking dialog is shown in setup().
card.initsd();
@ -1527,7 +1524,7 @@ void setup()
calibration_status() == CALIBRATION_STATUS_UNKNOWN ||
calibration_status() == CALIBRATION_STATUS_XYZ_CALIBRATION) {
// Reset the babystepping values, so the printer will not move the Z axis up when the babystepping is enabled.
eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_Z, 0);
eeprom_update_word(reinterpret_cast<uint16_t *>(&(EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].z_offset)),0);
// Show the message.
lcd_show_fullscreen_message_and_wait_P(_T(MSG_FOLLOW_CALIBRATION_FLOW));
}
@ -1751,12 +1748,25 @@ void loop()
{
is_usb_printing = false;
}
if (isPrintPaused && saved_printing_type == PRINTING_TYPE_USB) //keep believing that usb is being printed. Prevents accessing dangerous menus while pausing.
{
is_usb_printing = true;
}
#ifdef FANCHECK
if (fan_check_error && isPrintPaused)
{
KEEPALIVE_STATE(PAUSED_FOR_USER);
host_keepalive(); //prevent timeouts since usb processing is disabled until print is resumed. This is for a crude way of pausing a print on all hosts.
}
#endif
if (prusa_sd_card_upload)
{
//we read byte-by byte
serial_read_stream();
} else
}
else
{
get_command();
@ -2423,6 +2433,9 @@ void ramming() {
#ifdef TMC2130
void force_high_power_mode(bool start_high_power_section) {
#ifdef PSU_Delta
if (start_high_power_section == true) enable_force_z();
#endif //PSU_Delta
uint8_t silent;
silent = eeprom_read_byte((uint8_t*)EEPROM_SILENT);
if (silent == 1) {
@ -2694,6 +2707,7 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
previous_millis_cmd = _millis();
endstops_hit_on_purpose();
#ifndef MESH_BED_LEVELING
//-// Oct 2019 :: this part of code is (from) now probably un-compilable
// If MESH_BED_LEVELING is not active, then it is the original Prusa i3.
// Offer the user to load the baby step value, which has been adjusted at the previous print session.
if(card.sdprinting && eeprom_read_word((uint16_t *)EEPROM_BABYSTEP_Z))
@ -2886,7 +2900,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
{
// Reset the baby step value and the baby step applied flag.
calibration_status_store(CALIBRATION_STATUS_XYZ_CALIBRATION);
eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_Z, 0);
eeprom_update_word(reinterpret_cast<uint16_t *>(&(EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].z_offset)),0);
// Complete XYZ calibration.
uint8_t point_too_far_mask = 0;
BedSkewOffsetDetectionResultType result = find_bed_offset_and_skew(verbosity_level, point_too_far_mask);
@ -3450,22 +3464,16 @@ extern uint8_t st_backlash_y;
void process_commands()
{
#ifdef FANCHECK
if (fan_check_error){
if( fan_check_error == EFCE_DETECTED ){
fan_check_error = EFCE_REPORTED;
if(is_usb_printing){
SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_PAUSE);
}
else{
lcd_pause_print();
}
} // otherwise it has already been reported, so just ignore further processing
return;
}
#endif
#ifdef FANCHECK
if(fan_check_error){
if(fan_check_error == EFCE_DETECTED){
fan_check_error = EFCE_REPORTED;
// SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_PAUSED);
lcd_pause_print();
} // otherwise it has already been reported, so just ignore further processing
return; //ignore usb stream. It is reenabled by selecting resume from the lcd.
}
#endif
if (!buflen) return; //empty command
#ifdef FILAMENT_RUNOUT_SUPPORT
@ -3736,7 +3744,7 @@ void process_commands()
lang_reset();
} else if(code_seen("Lz")) { // PRUSA Lz
EEPROM_save_B(EEPROM_BABYSTEP_Z,0);
eeprom_update_word(reinterpret_cast<uint16_t *>(&(EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].z_offset)),0);
} else if(code_seen("Beat")) { // PRUSA Beat
// Kick farm link timer
@ -4620,7 +4628,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
case_G80:
{
mesh_bed_leveling_flag = true;
static bool run = false;
#ifndef PINDA_THERMISTOR
static bool run = false; // thermistor-less PINDA temperature compensation is running
#endif // ndef PINDA_THERMISTOR
#ifdef SUPPORT_VERBOSITY
int8_t verbosity_level = 0;
@ -4668,13 +4678,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
}
bool magnet_elimination = (eeprom_read_byte((uint8_t*)EEPROM_MBL_MAGNET_ELIMINATION) > 0);
bool temp_comp_start = true;
#ifdef PINDA_THERMISTOR
temp_comp_start = false;
#endif //PINDA_THERMISTOR
if (temp_comp_start)
if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) {
#ifndef PINDA_THERMISTOR
if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50)
{
if (lcd_commands_type != LcdCommands::StopPrint) {
temp_compensation_start();
run = true;
@ -4686,7 +4692,8 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
}
break;
}
run = false;
run = false;
#endif //PINDA_THERMISTOR
if (lcd_commands_type == LcdCommands::StopPrint) {
mesh_bed_leveling_flag = false;
break;
@ -4903,12 +4910,9 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
clean_up_after_endstop_move(l_feedmultiply);
// SERIAL_ECHOLNPGM("clean up finished ");
bool apply_temp_comp = true;
#ifdef PINDA_THERMISTOR
apply_temp_comp = false;
#endif
if (apply_temp_comp)
#ifndef PINDA_THERMISTOR
if(temp_cal_active == true && calibration_status_pinda() == true) temp_compensation_apply(); //apply PINDA temperature compensation
#endif
babystep_apply(); // Apply Z height correction aka baby stepping before mesh bed leveing gets activated.
// SERIAL_ECHOLNPGM("babystep applied");
bool eeprom_bed_correction_valid = eeprom_read_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID) == 1;
@ -5507,7 +5511,7 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
// Reset the baby step value and the baby step applied flag.
calibration_status_store(CALIBRATION_STATUS_ASSEMBLED);
eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_Z, 0);
eeprom_update_word(reinterpret_cast<uint16_t *>(&(EEPROM_Sheets_base->s[(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))].z_offset)),0);
// Reset the skew and offset in both RAM and EEPROM.
reset_bed_offset_and_skew();
@ -6005,6 +6009,14 @@ Sigma_Exit:
}
//! ### M109 - Wait for extruder temperature
//! Parameters (not mandatory):
//! * S \<temp\> set extruder temperature
//! * R \<temp\> set extruder temperature
//!
//! Parameters S and R are treated identically.
//! Command always waits for both cool down and heat up.
//! If no parameters are supplied waits for previously
//! set extruder temperature.
// -------------------------------------------------
case 109:
{
@ -6021,10 +6033,8 @@ Sigma_Exit:
#endif
if (code_seen('S')) {
setTargetHotendSafe(code_value(), extruder);
CooldownNoWait = true;
} else if (code_seen('R')) {
setTargetHotendSafe(code_value(), extruder);
CooldownNoWait = false;
}
#ifdef AUTOTEMP
if (code_seen('S')) autotemp_min=code_value();
@ -6058,9 +6068,15 @@ Sigma_Exit:
break;
//! ### M190 - Wait for bed temperature
// ---------------------------------------
//! Parameters (not mandatory):
//! * S \<temp\> set extruder temperature and wait for heating
//! * R \<temp\> set extruder temperature and wait for heating or cooling
//!
//! If no parameter is supplied, waits for heating or cooling to previously set temperature.
case 190:
#if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
{
bool CooldownNoWait = false;
LCD_MESSAGERPGM(_T(MSG_BED_HEATING));
heating_status = 3;
if (farm_mode) { prusa_statistics(1); };
@ -6072,7 +6088,6 @@ Sigma_Exit:
else if (code_seen('R'))
{
setTargetBed(code_value());
CooldownNoWait = false;
}
codenum = _millis();
@ -6106,6 +6121,7 @@ Sigma_Exit:
heating_status = 4;
previous_millis_cmd = _millis();
}
#endif
break;
@ -7444,11 +7460,12 @@ Sigma_Exit:
break;
#endif
//! ### M907 - Set digital trimpot motor current using axis codes
//! ### M907 - Set digital trimpot motor current in mA using axis codes
// ---------------------------------------------------------------
case 907:
{
#ifdef TMC2130
//! See tmc2130_cur2val() for translation to 0 .. 63 range
for (int i = 0; i < NUM_AXIS; i++)
if(code_seen(axis_codes[i]))
{
@ -8484,7 +8501,7 @@ bool bInhibitFlag;
#endif // IR_SENSOR
if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag)) //M600 not in progress, preHeat @ autoLoad menu not active, Support::ExtruderInfo/SensorInfo menu not active
{
if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && !wizard_active)
if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE))
{
if (fsensor_check_autoload())
{
@ -8515,7 +8532,7 @@ if(0)
}
else
{
menu_submenu(mFilamentMenu);
menu_submenu(lcd_generic_preheat_menu);
lcd_timeoutToStatus.start();
}
}
@ -9345,7 +9362,8 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
}
#endif //HEATBED_ANALYSIS
void temp_compensation_start() {
#ifndef PINDA_THERMISTOR
static void temp_compensation_start() {
custom_message_type = CustomMsg::TempCompPreheat;
custom_message_state = PINDA_HEAT_T + 1;
@ -9372,7 +9390,7 @@ void temp_compensation_start() {
custom_message_state = 0;
}
void temp_compensation_apply() {
static void temp_compensation_apply() {
int i_add;
int z_shift = 0;
float z_shift_mm;
@ -9395,6 +9413,7 @@ void temp_compensation_apply() {
//we have no temp compensation data
}
}
#endif //ndef PINDA_THERMISTOR
float temp_comp_interpolation(float inp_temperature) {
@ -10154,7 +10173,8 @@ void restore_print_from_ram_and_continue(float e_move)
#ifdef FANCHECK
// Do not allow resume printing if fans are still not ok
if( fan_check_error != EFCE_OK )return;
if ((fan_check_error != EFCE_OK) && (fan_check_error != EFCE_FIXED)) return;
if (fan_check_error == EFCE_FIXED) fan_check_error = EFCE_OK; //reenable serial stream processing if printing from usb
#endif
// for (int axis = X_AXIS; axis <= E_AXIS; axis++)
@ -10208,6 +10228,7 @@ void restore_print_from_ram_and_continue(float e_move)
}
SERIAL_PROTOCOLLNRPGM(MSG_OK); //dummy response because of octoprint is waiting for this
lcd_setstatuspgm(_T(WELCOME_MSG));
saved_printing_type = PRINTING_TYPE_NONE;
saved_printing = false;
}

View File

@ -137,8 +137,8 @@ void CardReader::lsDive(const char *prepend, SdFile parent, const char * const m
SERIAL_ECHOPGM("Access date: ");
MYSERIAL.println(p.lastAccessDate);
SERIAL_ECHOLNPGM("");*/
creationDate = p.creationDate;
creationTime = p.creationTime;
modificationDate = p.lastWriteDate;
modificationTime = p.lastWriteTime;
//writeDate = p.lastAccessDate;
if (match != NULL) {
if (strcasecmp(match, filename) == 0) return;
@ -203,6 +203,7 @@ void CardReader::initsd()
}
workDir=root;
curDir=&root;
workDirDepth = 0;
#ifdef SDCARD_SORT_ALPHA
presort();
@ -762,8 +763,8 @@ void CardReader::presort() {
#endif
#elif SDSORT_USES_STACK
char sortnames[fileCnt][LONG_FILENAME_LENGTH];
uint16_t creation_time[fileCnt];
uint16_t creation_date[fileCnt];
uint16_t modification_time[fileCnt];
uint16_t modification_date[fileCnt];
#endif
// Folder sorting needs 1 bit per entry for flags.
@ -783,8 +784,8 @@ void CardReader::presort() {
// retaining only two filenames at a time. This is very
// slow but is safest and uses minimal RAM.
char name1[LONG_FILENAME_LENGTH + 1];
uint16_t creation_time_bckp;
uint16_t creation_date_bckp;
uint16_t modification_time_bckp;
uint16_t modification_date_bckp;
#endif
position = 0;
@ -810,8 +811,8 @@ void CardReader::presort() {
#else
// Copy filenames into the static array
strcpy(sortnames[i], LONGEST_FILENAME);
creation_time[i] = creationTime;
creation_date[i] = creationDate;
modification_time[i] = modificationTime;
modification_date[i] = modificationDate;
#if SDSORT_CACHE_NAMES
strcpy(sortshort[i], filename);
#endif
@ -836,12 +837,12 @@ void CardReader::presort() {
// Compare names from the array or just the two buffered names
#if SDSORT_USES_RAM
#define _SORT_CMP_NODIR() (strcasecmp(sortnames[o1], sortnames[o2]) > 0)
#define _SORT_CMP_TIME_NODIR() (((creation_date[o1] == creation_date[o2]) && (creation_time[o1] < creation_time[o2])) || \
(creation_date[o1] < creation_date [o2]))
#define _SORT_CMP_TIME_NODIR() (((modification_date[o1] == modification_date[o2]) && (modification_time[o1] < modification_time[o2])) || \
(modification_date[o1] < modification_date [o2]))
#else
#define _SORT_CMP_NODIR() (strcasecmp(name1, name2) > 0) //true if lowercase(name1) > lowercase(name2)
#define _SORT_CMP_TIME_NODIR() (((creation_date_bckp == creationDate) && (creation_time_bckp > creationTime)) || \
(creation_date_bckp > creationDate))
#define _SORT_CMP_TIME_NODIR() (((modification_date_bckp == modificationDate) && (modification_time_bckp > modificationTime)) || \
(modification_date_bckp > modificationDate))
#endif
@ -892,8 +893,8 @@ void CardReader::presort() {
counter++;
getfilename_simple(positions[o1]);
strcpy(name1, LONGEST_FILENAME); // save (or getfilename below will trounce it)
creation_date_bckp = creationDate;
creation_time_bckp = creationTime;
modification_date_bckp = modificationDate;
modification_time_bckp = modificationTime;
#if HAS_FOLDER_SORTING
bool dir1 = filenameIsDir;
#endif

View File

@ -77,7 +77,7 @@ public:
bool cardOK ;
bool paused ;
char filename[13];
uint16_t creationTime, creationDate;
uint16_t modificationTime, modificationDate;
uint32_t cluster, position;
char longFilename[LONG_FILENAME_LENGTH];
bool filenameIsDir;
@ -114,8 +114,8 @@ private:
#endif
#elif !SDSORT_USES_STACK
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
uint16_t creation_time[SDSORT_LIMIT];
uint16_t creation_date[SDSORT_LIMIT];
uint16_t modification_time[SDSORT_LIMIT];
uint16_t modification_date[SDSORT_LIMIT];
#endif
// Folder sorting uses an isDir array when caching items.

View File

@ -62,7 +62,7 @@ void eeprom_init()
if (eeprom_read_word((uint16_t*)EEPROM_MMU_LOAD_FAIL_TOT) == 0xffff) eeprom_update_word((uint16_t *)EEPROM_MMU_LOAD_FAIL_TOT, 0);
if (eeprom_read_byte((uint8_t*)EEPROM_MMU_FAIL) == 0xff) eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0);
if (eeprom_read_byte((uint8_t*)EEPROM_MMU_LOAD_FAIL) == 0xff) eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0);
if (eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)) == 0xff)
if (eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)) == EEPROM_EMPTY_VALUE)
{
eeprom_update_byte(&(EEPROM_Sheets_base->active_sheet), 0);
// When upgrading from version older version (before multiple sheets were implemented in v3.8.0)

View File

@ -3,9 +3,12 @@
#include <stdint.h>
#define MAX_SHEETS 8
#define MAX_SHEET_NAME_LENGTH 7
typedef struct
{
char name[7]; //!< Can be null terminated, doesn't need to be null terminated
char name[MAX_SHEET_NAME_LENGTH]; //!< Can be null terminated, doesn't need to be null terminated
int16_t z_offset; //!< Z_BABYSTEP_MIN .. Z_BABYSTEP_MAX = Z_BABYSTEP_MIN*2/1000 [mm] .. Z_BABYSTEP_MAX*2/1000 [mm]
uint8_t bed_temp; //!< 0 .. 254 [°C]
uint8_t pinda_temp; //!< 0 .. 254 [°C]
@ -13,7 +16,7 @@ typedef struct
typedef struct
{
Sheet s[8];
Sheet s[MAX_SHEETS];
uint8_t active_sheet;
} Sheets;
// sizeof(Sheets). Do not change it unless EEPROM_Sheets_base is last item in EEPROM.
@ -25,6 +28,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
#endif
#define EEPROM_EMPTY_VALUE 0xFF
#define EEPROM_EMPTY_VALUE16 0xFFFF
// The total size of the EEPROM is
// 4096 for the Atmega2560
#define EEPROM_TOP 4096

View File

@ -10,32 +10,28 @@
#include "mmu.h"
#include <avr/pgmspace.h>
//! @brief Preheat
void lay1cal_preheat()
//! @brief Wait for preheat
void lay1cal_wait_preheat()
{
static const char cmd_preheat_0[] PROGMEM = "M107";
static const char cmd_preheat_1[] PROGMEM = "M104 S" STRINGIFY(PLA_PREHEAT_HOTEND_TEMP);
static const char cmd_preheat_2[] PROGMEM = "M140 S" STRINGIFY(PLA_PREHEAT_HPB_TEMP);
static const char cmd_preheat_3[] PROGMEM = "M190 S" STRINGIFY(PLA_PREHEAT_HPB_TEMP);
static const char cmd_preheat_4[] PROGMEM = "M109 S" STRINGIFY(PLA_PREHEAT_HOTEND_TEMP);
static const char cmd_preheat_5[] PROGMEM = "G28";
static const char cmd_preheat_6[] PROGMEM = "G92 E0.0";
static const char cmd_preheat_1[] PROGMEM = "M190";
static const char cmd_preheat_2[] PROGMEM = "M109";
static const char cmd_preheat_4[] PROGMEM = "G28";
static const char cmd_preheat_5[] PROGMEM = "G92 E0.0";
static const char * const preheat_cmd[] PROGMEM =
const char * const preheat_cmd[] =
{
cmd_preheat_0,
cmd_preheat_1,
cmd_preheat_2,
cmd_preheat_3,
_T(MSG_M117_V2_CALIBRATION),
cmd_preheat_4,
cmd_preheat_5, //call MSG_M117_V2_CALIBRATION before
cmd_preheat_6,
cmd_preheat_5,
};
for (uint8_t i = 0; i < (sizeof(preheat_cmd)/sizeof(preheat_cmd[0])); ++i)
{
if (5 == i) enquecommand_P(_T(MSG_M117_V2_CALIBRATION));
enquecommand_P(static_cast<char*>(pgm_read_ptr(&preheat_cmd[i])));
enquecommand_P(preheat_cmd[i]);
}
}

View File

@ -6,7 +6,7 @@
#define FIRMWARE_FIRST_LAY_CAL_H_
#include <stdint.h>
void lay1cal_preheat();
void lay1cal_wait_preheat();
void lay1cal_load_filament(char *cmd_buffer, uint8_t filament);
void lay1cal_intro_line();
void lay1cal_before_meander();

View File

@ -761,8 +761,7 @@ void lcd_buttons_update(void)
//else if (menu_menu == lcd_move_z) lcd_quick_feedback();
//lcd_button_pressed is set back to false via lcd_quick_feedback function
}
else
lcd_long_press_active = 0;
lcd_long_press_active = 0;
}
lcd_buttons = newbutton;

View File

@ -15,7 +15,7 @@
extern int32_t lcd_encoder;
#define MENU_DEPTH_MAX 6
#define MENU_DEPTH_MAX 7
static menu_record_t menu_stack[MENU_DEPTH_MAX];

View File

@ -149,4 +149,8 @@ const char MSG_ENDSTOP_OPEN[] PROGMEM_N1 = "open"; ////
const char MSG_POWERUP[] PROGMEM_N1 = "PowerUp"; ////
const char MSG_ERR_STOPPED[] PROGMEM_N1 = "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"; ////
const char MSG_ENDSTOP_HIT[] PROGMEM_N1 = "TRIGGERED"; ////
const char MSG_OCTOPRINT_PAUSE[] PROGMEM_N1 = "// action:pause"; ////
const char MSG_OCTOPRINT_PAUSED[] PROGMEM_N1 = "// action:paused"; ////
const char MSG_OCTOPRINT_RESUMED[] PROGMEM_N1 = "// action:resumed"; ////
const char MSG_OCTOPRINT_CANCEL[] PROGMEM_N1 = "// action:cancel"; ////
const char MSG_FANCHECK_EXTRUDER[] PROGMEM_N1 = "Err: EXTR. FAN ERROR"; ////c=20
const char MSG_FANCHECK_PRINT[] PROGMEM_N1 = "Err: PRINT FAN ERROR"; ////c=20

View File

@ -150,7 +150,11 @@ extern const char MSG_ERR_STOPPED[];
extern const char MSG_ENDSTOP_HIT[];
extern const char MSG_EJECT_FILAMENT[];
extern const char MSG_CUT_FILAMENT[];
extern const char MSG_OCTOPRINT_PAUSE[];
extern const char MSG_OCTOPRINT_PAUSED[];
extern const char MSG_OCTOPRINT_RESUMED[];
extern const char MSG_OCTOPRINT_CANCEL[];
extern const char MSG_FANCHECK_EXTRUDER[];
extern const char MSG_FANCHECK_PRINT[];
#if defined(__cplusplus)
}

View File

@ -1074,27 +1074,6 @@ void mmu_filament_ramming()
}
}
//-//
void extr_unload_()
{
//if(bFilamentAction)
if(0)
{
bFilamentAction=false;
extr_unload();
}
else {
eFilamentAction=FilamentAction::MmuUnLoad;
bFilamentFirstRun=false;
if(target_temperature[0]>=EXTRUDE_MINTEMP)
{
bFilamentPreheatState=true;
mFilamentItem(target_temperature[0],target_temperature_bed);
}
// else menu_submenu(mFilamentMenu);
else mFilamentMenu();
}
}
//! @brief show which filament is currently unloaded
void extr_unload_view()

View File

@ -105,8 +105,7 @@ extern int get_ext_nr();
extern void display_loading();
extern void extr_adj(uint8_t extruder);
extern void extr_unload();
//-//
extern void extr_unload_();
extern void extr_adj_0();
extern void extr_adj_1();
extern void extr_adj_2();

View File

@ -1561,11 +1561,10 @@ void EEPROM_read_st(int pos, uint8_t* value, uint8_t size)
void st_current_init() //Initialize Digipot Motor Current
{
{
#ifdef MOTOR_CURRENT_PWM_XY_PIN
uint8_t SilentMode = eeprom_read_byte((uint8_t*)EEPROM_SILENT);
if (SilentMode == 0xff) SilentMode = 0; //set power to High Power (MK2.5) or Normal Power (MK3, unused)
SilentModeMenu = SilentMode;
#ifdef MOTOR_CURRENT_PWM_XY_PIN
pinMode(MOTOR_CURRENT_PWM_XY_PIN, OUTPUT);
pinMode(MOTOR_CURRENT_PWM_Z_PIN, OUTPUT);
pinMode(MOTOR_CURRENT_PWM_E_PIN, OUTPUT);
@ -1587,7 +1586,7 @@ void st_current_init() //Initialize Digipot Motor Current
st_current_set(2, motor_current_setting[2]);
//Set timer5 to 31khz so the PWM of the motor power is as constant as possible. (removes a buzzing noise)
TCCR5B = (TCCR5B & ~(_BV(CS50) | _BV(CS51) | _BV(CS52))) | _BV(CS50);
#endif
#endif
}

View File

@ -503,14 +503,17 @@ void checkFanSpeed()
// drop the fan_check_error flag when both fans are ok
if( fan_speed_errors[0] == 0 && fan_speed_errors[1] == 0 && fan_check_error == EFCE_REPORTED){
// we may even send some info to the LCD from here
fan_check_error = EFCE_OK;
fan_check_error = EFCE_FIXED;
}
if ((fan_speed_errors[0] > max_extruder_fan_errors) && fans_check_enabled) {
if ((fan_check_error == EFCE_FIXED) && !PRINTER_ACTIVE){
fan_check_error = EFCE_OK; //if the issue is fixed while the printer is doing nothing, reenable processing immediately.
lcd_reset_alert_level(); //for another fan speed error
}
if ((fan_speed_errors[0] > max_extruder_fan_errors) && fans_check_enabled && (fan_check_error == EFCE_OK)) {
fan_speed_errors[0] = 0;
fanSpeedError(0); //extruder fan
}
if ((fan_speed_errors[1] > max_print_fan_errors) && fans_check_enabled) {
if ((fan_speed_errors[1] > max_print_fan_errors) && fans_check_enabled && (fan_check_error == EFCE_OK)) {
fan_speed_errors[1] = 0;
fanSpeedError(1); //print fan
}
@ -529,31 +532,31 @@ static void fanSpeedErrorBeep(const char *serialMsg, const char *lcdMsg){
}
void fanSpeedError(unsigned char _fan) {
if (get_message_level() != 0 && isPrintPaused) return;
//to ensure that target temp. is not set to zero in case taht we are resuming print
if (get_message_level() != 0 && isPrintPaused) return;
//to ensure that target temp. is not set to zero in case that we are resuming print
if (card.sdprinting || is_usb_printing) {
if (heating_status != 0) {
lcd_print_stop();
}
else {
fan_check_error = EFCE_DETECTED;
fan_check_error = EFCE_DETECTED; //plans error for next processed command
}
}
else {
SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_PAUSE); //for octoprint
setTargetHotend0(0);
heating_status = 0;
fan_check_error = EFCE_REPORTED;
// SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_PAUSED); //Why pause octoprint? is_usb_printing would be true in that case, so there is no need for this.
setTargetHotend0(0);
heating_status = 0;
fan_check_error = EFCE_REPORTED;
}
switch (_fan) {
case 0: // extracting the same code from case 0 and case 1 into a function saves 72B
fanSpeedErrorBeep(PSTR("Extruder fan speed is lower than expected"), PSTR("Err: EXTR. FAN ERROR") );
fanSpeedErrorBeep(PSTR("Extruder fan speed is lower than expected"), MSG_FANCHECK_EXTRUDER);
break;
case 1:
fanSpeedErrorBeep(PSTR("Print fan speed is lower than expected"), PSTR("Err: PRINT FAN ERROR") );
fanSpeedErrorBeep(PSTR("Print fan speed is lower than expected"), MSG_FANCHECK_PRINT);
break;
}
SERIAL_PROTOCOLLNRPGM(MSG_OK);
// SERIAL_PROTOCOLLNRPGM(MSG_OK); //This ok messes things up with octoprint.
}
#endif //(defined(TACH_0) && TACH_0 >-1) || (defined(TACH_1) && TACH_1 > -1)
@ -1565,7 +1568,9 @@ extern "C" {
void adc_ready(void) //callback from adc when sampling finished
{
current_temperature_raw[0] = adc_values[ADC_PIN_IDX(TEMP_0_PIN)]; //heater
#ifdef PINDA_THERMISTOR
current_temperature_raw_pinda_fast = adc_values[ADC_PIN_IDX(TEMP_PINDA_PIN)];
#endif //PINDA_THERMISTOR
current_temperature_bed_raw = adc_values[ADC_PIN_IDX(TEMP_BED_PIN)];
#ifdef VOLT_PWR_PIN
current_voltage_raw_pwr = adc_values[ADC_PIN_IDX(VOLT_PWR_PIN)];

View File

@ -241,6 +241,7 @@ void checkExtruderAutoFans();
enum {
EFCE_OK = 0, //!< normal operation, both fans are ok
EFCE_FIXED, //!< previous fan error was fixed
EFCE_DETECTED, //!< fan error detected, but not reported yet
EFCE_REPORTED //!< fan error detected and reported to LCD and serial
};

View File

@ -1,3 +1,5 @@
//! @file
#include "Marlin.h"
#ifdef TMC2130
@ -1009,6 +1011,79 @@ bool tmc2130_home_calibrate(uint8_t axis)
return true;
}
//! @brief Translate current to tmc2130 vsense and IHOLD or IRUN
//! @param cur current in mA
//! @return 0 .. 63
//! @n most significant bit is CHOPCONF vsense bit (sense resistor voltage based current scaling)
//! @n rest is to be used in IRUN or IHOLD register
//!
//! | mA | trinamic register | note |
//! | --- | --- | --- |
//! | 0 | 0 | doesn't mean current off, lowest current is 1/32 current with vsense low range |
//! | 30 | 1 | |
//! | 40 | 2 | |
//! | 60 | 3 | |
//! | 90 | 4 | |
//! | 100 | 5 | |
//! | 120 | 6 | |
//! | 130 | 7 | |
//! | 150 | 8 | |
//! | 180 | 9 | |
//! | 190 | 10 | |
//! | 210 | 11 | |
//! | 230 | 12 | |
//! | 240 | 13 | |
//! | 250 | 13 | |
//! | 260 | 14 | |
//! | 280 | 15 | |
//! | 300 | 16 | |
//! | 320 | 17 | |
//! | 340 | 18 | |
//! | 350 | 19 | |
//! | 370 | 20 | |
//! | 390 | 21 | |
//! | 410 | 22 | |
//! | 430 | 23 | |
//! | 450 | 24 | |
//! | 460 | 25 | |
//! | 480 | 26 | |
//! | 500 | 27 | |
//! | 520 | 28 | |
//! | 535 | 29 | |
//! | N/D | 30 | extruder default |
//! | 540 | 33 | |
//! | 560 | 34 | |
//! | 580 | 35 | |
//! | 590 | 36 | farm mode extruder default |
//! | 610 | 37 | |
//! | 630 | 38 | |
//! | 640 | 39 | |
//! | 660 | 40 | |
//! | 670 | 41 | |
//! | 690 | 42 | |
//! | 710 | 43 | |
//! | 720 | 44 | |
//! | 730 | 45 | |
//! | 760 | 46 | |
//! | 770 | 47 | |
//! | 790 | 48 | |
//! | 810 | 49 | |
//! | 820 | 50 | |
//! | 840 | 51 | |
//! | 850 | 52 | |
//! | 870 | 53 | |
//! | 890 | 54 | |
//! | 900 | 55 | |
//! | 920 | 56 | |
//! | 940 | 57 | |
//! | 950 | 58 | |
//! | 970 | 59 | |
//! | 980 | 60 | |
//! | 1000 | 61 | |
//! | 1020 | 62 | |
//! | 1029 | 63 | |
uint8_t tmc2130_cur2val(float cur)
{
if (cur < 0) cur = 0; //limit min

File diff suppressed because it is too large Load Diff

View File

@ -168,6 +168,7 @@ enum class FilamentAction : uint_least8_t
MmuEject,
MmuCut,
Preheat,
Lay1Cal,
};
extern FilamentAction eFilamentAction;
@ -176,7 +177,7 @@ extern bool bFilamentPreheatState;
extern bool bFilamentAction;
void mFilamentItem(uint16_t nTemp,uint16_t nTempBed);
void mFilamentItemForce();
void mFilamentMenu();
void lcd_generic_preheat_menu();
void unload_filament();
void stack_error();
@ -196,7 +197,9 @@ void lcd_wait_for_cool_down();
void lcd_extr_cal_reset();
void lcd_temp_cal_show_result(bool result);
#ifdef PINDA_THERMISTOR
bool lcd_wait_for_pinda(float temp);
#endif //PINDA_THERMISTOR
void bowden_menu();
@ -222,18 +225,19 @@ bool lcd_autoDepleteEnabled();
//! @brief Wizard state
enum class WizState : uint8_t
{
Run, //!< run wizard? Entry point.
Run, //!< run wizard? Main entry point.
Restore, //!< restore calibration status
Selftest,
Selftest, //!< self test
Xyz, //!< xyz calibration
Z, //!< z calibration
IsFil, //!< Is filament loaded? Entry point for 1st layer calibration
IsFil, //!< Is filament loaded? First step of 1st layer calibration
PreheatPla, //!< waiting for preheat nozzle for PLA
Preheat, //!< Preheat for any material
Unload, //!< Unload filament
LoadFil, //!< Load filament
LoadFilCold, //!< Load filament for MMU
LoadFilHot, //!< Load filament without MMU
IsPla, //!< Is PLA filament?
Lay1Cal, //!< First layer calibration
Lay1CalCold, //!< First layer calibration, temperature not selected yet
Lay1CalHot, //!< First layer calibration, temperature already selected
RepeatLay1Cal, //!< Repeat first layer calibration?
Finish, //!< Deactivate wizard
};

View File

@ -341,13 +341,17 @@ if(oCheckMode==ClCheckMode::_Undef)
eeprom_update_byte((uint8_t*)EEPROM_CHECK_MODE,(uint8_t)oCheckMode);
}
if(farm_mode)
{
oCheckMode=ClCheckMode::_Strict;
if(eeprom_read_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM)==EEPROM_EMPTY_VALUE16)
eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,EEPROM_NOZZLE_DIAMETER_uM_DEFAULT);
}
oNozzleDiameter=(ClNozzleDiameter)eeprom_read_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER);
if((oNozzleDiameter==ClNozzleDiameter::_Diameter_Undef)&& !farm_mode)
{
oNozzleDiameter=ClNozzleDiameter::_Diameter_400;
eeprom_update_byte((uint8_t*)EEPROM_NOZZLE_DIAMETER,(uint8_t)oNozzleDiameter);
eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,400);
eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,EEPROM_NOZZLE_DIAMETER_uM_DEFAULT);
}
oCheckModel=(ClCheckModel)eeprom_read_byte((uint8_t*)EEPROM_CHECK_MODEL);
if(oCheckModel==ClCheckModel::_Undef)

View File

@ -35,6 +35,8 @@ inline void eeprom_update_int8(unsigned char* addr, int8_t v) {
//-//
#define EEPROM_NOZZLE_DIAMETER_uM_DEFAULT 400
enum class ClPrintChecking:uint_least8_t
{
_Nozzle=1,

View File

@ -111,7 +111,9 @@ Now your Ubuntu subsystem is ready to use the automatic `PF-build.sh` script and
- Unix and windows have different line endings (LF vs CRLF), try dos2unix to convert
- This should fix the `"$'\r': command not found"` error
- to install run `apt-get install dos2unix`
- If your Windows isn't in English the Paths may look different
Example in other languages
- English `/mnt/c/Users/<your-username>/Downloads/Prusa-Firmware-MK3` will be on a German Windows`/mnt/c/Anwender/<your-username>/Downloads/Prusa-Firmware-MK3`
#### Compile Prusa-firmware with Ubuntu Linux subsystem installed
- open Ubuntu bash
- change to your source code folder (case sensitive)
@ -123,11 +125,14 @@ _notes: Script and instructions contributed by 3d-gussner. Use at your own risk.
- Download and install the 64bit Git version https://git-scm.com/download/win
- Also follow these instructions https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058
- Download and install 7z-zip from its official website https://www.7-zip.org/
By default, it is installed under the directory /c/Program Files/7-Zip in Windows 10
By default, it is installed under the directory /c/Program\ Files/7-Zip in Windows 10
- Run `Git-Bash` under Administrator privilege
- navigate to the directory /c/Program Files/Git/mingw64/bin
- run `ln -s /c/Program Files/7-Zip/7z.exe zip.exe`
- navigate to the directory /c/Program\ Files/Git/mingw64/bin
- run `ln -s /c/Program\ Files/7-Zip/7z.exe zip.exe`
- If your Windows isn't in English the Paths may look different
Example in other languages
- English `/mnt/c/Users/<your-username>/Downloads/Prusa-Firmware-MK3` will be on a German Windows`/mnt/c/Anwender/<your-username>/Downloads/Prusa-Firmware-MK3`
- English `ln -s /c/Program\ Files/7-Zip/7z.exe zip.exe` will be on a Spanish Windows `ln -s /c/Archivos\ de\ programa/7-Zip/7z.exe zip.exe`
#### Compile Prusa-firmware with Git-bash installed
- open Git-bash
- change to your source code folder

View File

@ -51,7 +51,7 @@ if ! [ -e lang_add.txt ]; then
fi
cat lang_add.txt | sed 's/^/"/;s/$/"/' | while read new_s; do
if grep "$new_s" lang_en.txt >/dev/nul; then
if grep "$new_s" lang_en.txt >/dev/null; then
echo "text already exist:"
echo "$new_s"
echo

View File

@ -4,7 +4,19 @@
# for importing translated xx.po
LNG=$1
if [ -z "$LNG" ]; then exit -1; fi
# if no arguments, 'all' is selected (all po and also pot will be generated)
if [ -z "$LNG" ]; then LNG=all; fi
# if 'all' is selected, script will generate all po files and also pot file
if [ "$LNG" = "all" ]; then
./lang-import.sh cz
./lang-import.sh de
./lang-import.sh es
./lang-import.sh fr
./lang-import.sh it
./lang-import.sh pl
exit 0
fi
# language code (iso639-1) is equal to LNG
LNGISO=$LNG
@ -28,43 +40,51 @@ sed -i 's/ \\n/ /g;s/\\n/ /g' $LNG'_filtered.po'
#replace in czech translation
if [ "$LNG" = "cz" ]; then
#replace 'ž' with 'z'
#replace 'ž' with 'z'
sed -i 's/\xc5\xbe/z/g' $LNG'_filtered.po'
#replace 'ì' with 'e'
#replace 'ì' with 'e'
sed -i 's/\xc4\x9b/e/g' $LNG'_filtered.po'
#replace 'í' with 'i'
#replace 'í' with 'i'
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
#replace 'ø' with 'r'
#replace 'ø' with 'r'
sed -i 's/\xc5\x99/r/g' $LNG'_filtered.po'
#replace 'è' with 'c'
#replace 'è' with 'c'
sed -i 's/\xc4\x8d/c/g' $LNG'_filtered.po'
#replace 'á' with 'a'
#replace 'á' with 'a'
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
#replace 'é' with 'e'
#replace 'é' with 'e'
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
fi
#replace in german translation
#replace in german translation https://en.wikipedia.org/wiki/German_orthography
if [ "$LNG" = "de" ]; then
#replace 'ä' with 'ae'
#replace 'ä' with 'ae'
sed -i 's/\xc3\xa4/ae/g' $LNG'_filtered.po'
#replace 'ü' with 'ue'
#replace 'Ä' with 'Ae'
sed -i 's/\xc3\x84/Ae/g' $LNG'_filtered.po'
#replace 'ü' with 'ue'
sed -i 's/\xc3\xbc/ue/g' $LNG'_filtered.po'
#replace 'ö' with 'oe'
#replace 'Ü' with 'Ue'
sed -i 's/\xc3\x9c/Ue/g' $LNG'_filtered.po'
#replace 'ö' with 'oe'
sed -i 's/\xc3\xb6/oe/g' $LNG'_filtered.po'
#replace 'Ö' with 'Oe'
sed -i 's/\xc3\x96/Oe/g' $LNG'_filtered.po'
#replace 'ß' with 'ss'
sed -i 's/\xc3\x9f/ss/g' $LNG'_filtered.po'
fi
#replace in spain translation
if [ "$LNG" = "es" ]; then
#replace 'á' with 'a'
#replace 'á' with 'a'
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
#replace '?' with '?'
#replace '¿' with '?'
sed -i 's/\xc2\xbf/?/g' $LNG'_filtered.po'
#replace 'ó' with 'o'
#replace 'ó' with 'o'
sed -i 's/\xc3\xb3/o/g' $LNG'_filtered.po'
#replace 'é' with 'e'
#replace 'é' with 'e'
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
#replace 'í' with 'i'
#replace 'í' with 'i'
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
#replace '!' with '!'
sed -i 's/\xc2\xa1/!/g' $LNG'_filtered.po'
@ -72,31 +92,39 @@ if [ "$LNG" = "es" ]; then
sed -i 's/\xc3\xb1/n/g' $LNG'_filtered.po'
fi
#replace in french translation
#replace in french translation https://en.wikipedia.org/wiki/French_orthography
if [ "$LNG" = "fr" ]; then
#replace 'é' with 'e'
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
#replace 'É' with 'E'
sed -i 's/\xc3\x89/E/g' $LNG'_filtered.po'
#replace 'é' with 'e' (left)
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
#replace 'á' with 'a' (left)
#replace 'á' with 'a' (right)
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
#replace 'Á' with 'A' (right)
sed -i 's/\xc3\x81/A/g' $LNG'_filtered.po'
#replace 'à' with 'a' (left)
sed -i 's/\xc3\xa0/a/g' $LNG'_filtered.po'
#replace 'À' with 'A' (left)
sed -i 's/\xc3\x80/A/g' $LNG'_filtered.po'
#replace 'é' with 'e' (right)
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
#replace 'É' with 'E' (right)
sed -i 's/\xc3\x89/E/g' $LNG'_filtered.po'
#replace 'è' with 'e' (left)
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
#replace 'È' with 'E' (left)
sed -i 's/\xc3\x88/E/g' $LNG'_filtered.po'
fi
#replace in italian translation
if [ "$LNG" = "it" ]; then
#replace 'é' with 'e' (left)
#replace 'é' with 'e' (left)
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
#replace 'á' with 'a' (left)
#replace 'á' with 'a' (left)
sed -i 's/\xc3\xa0/a/g' $LNG'_filtered.po'
#replace 'ó' with 'o' (left)
#replace 'ó' with 'o' (left)
sed -i 's/\xc3\xb2/o/g' $LNG'_filtered.po'
#replace 'ú' with 'u' (left)
#replace 'ú' with 'u' (left)
sed -i 's/\xc3\xb9/u/g' $LNG'_filtered.po'
#replace 'é' with 'e'
#replace 'é' with 'e'
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
#replace 'É' with 'E' (left)
#replace 'É' with 'E' (left)
sed -i 's/\xc3\x88/E/g' $LNG'_filtered.po'
fi

View File

@ -1,3 +1,6 @@
#
"[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
#MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
" of 4"
@ -123,6 +126,8 @@
#MSG_CRASHDETECT
"Crash det."
#
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
#MSG_CRASH_DETECTED c=20 r=1
"Crash detected."
@ -154,9 +159,6 @@
#MSG_EJECT_FILAMENT c=17 r=1
"Eject filament"
#
"Eject"
#MSG_EJECTING_FILAMENT c=20 r=1
"Ejecting filament"
@ -319,33 +321,24 @@
#MSG_WIZARD_Z_CAL c=20 r=8
"I will run z calibration now."
#MSG_WIZARD_V2_CAL_2 c=20 r=12
"I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
#MSG_WATCH
"Info screen"
#
"Is filament 1 loaded?"
#MSG_INSERT_FILAMENT c=20
"Insert filament"
#MSG_WIZARD_FILAMENT_LOADED c=20 r=2
"Is filament loaded?"
#MSG_WIZARD_PLA_FILAMENT c=20 r=2
"Is it PLA filament?"
#MSG_PLA_FILAMENT_LOADED c=20 r=2
"Is PLA filament loaded?"
#MSG_STEEL_SHEET_CHECK c=20 r=2
"Is steel sheet on heatbed?"
#
"Last print failures"
#
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
#
"Last print"
@ -523,12 +516,6 @@
#MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
#MSG_WIZARD_LOAD_FILAMENT c=20 r=8
"Please insert PLA filament to the extruder, then press knob to load it."
#MSG_PLEASE_LOAD_PLA c=20 r=4
"Please load PLA filament first."
#MSG_CHECK_IDLER c=20 r=4
"Please open idler and remove filament manually."
@ -538,9 +525,6 @@
#MSG_PRESS_TO_UNLOAD c=20 r=4
"Please press the knob to unload filament"
#
"Please insert PLA filament to the first tube of MMU, then press the knob to load it."
#MSG_PULL_OUT_FILAMENT c=20 r=4
"Please pull out filament immediately"
@ -610,6 +594,15 @@
#
"Print FAN"
#
"Please insert filament into the extruder, then press the knob to load it."
#
"Please insert filament into the first tube of the MMU, then press the knob to load it."
#
"Please load filament first."
#MSG_PRUSA3D
"prusa3d.com"
@ -682,9 +675,6 @@
#
"Select nozzle preheat temperature which matches your material."
#
"Select PLA filament:"
#MSG_SET_TEMPERATURE c=19 r=1
"Set temperature:"
@ -710,7 +700,7 @@
"Time"
#
"Severe skew"
"Severe skew:"
#MSG_SORT_ALPHA
"Alphabet"
@ -722,7 +712,7 @@
"Loud"
#
"Slight skew"
"Slight skew:"
#MSG_SOUND
"Sound"
@ -757,12 +747,18 @@
#MSG_SELFTEST_SWAPPED
"Swapped"
#
"Select filament:"
#MSG_TEMP_CALIBRATION c=20 r=1
"Temp. cal. "
#MSG_TEMP_CALIBRATION_ON c=20 r=1
"Temp. cal. [on]"
#
"Select temperature which matches your material."
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
"Temp. cal. [off]"
@ -898,6 +894,9 @@
#
"Y distance from min"
#
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
#
"Y-correct:"
@ -1037,7 +1036,7 @@
"Sheet"
#
"Sound [assist]"
"Sound [assist]"
#
"Steel sheets"
@ -1050,3 +1049,6 @@
#
"Z-probe nr. [3]"
#
"Z-probe nr. [5]"

View File

@ -1,3 +1,7 @@
#
"[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
"[%.7s]Doladeni Z\x0auz nastaveno, pouzit\x0anebo reset od nuly?\x0a%cPokracovat%cReset"
#MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
" of 4"
" z 4"
@ -60,7 +64,7 @@
#MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
"Autoloading filament available only when filament sensor is turned on..."
"Automaticke zavadeni filamentu je dostupne pouze pri zapnutem filament senzoru..."
"Automaticke zavadeni filamentu je mozne pouze pri zapnutem filament senzoru..."
#MSG_AUTOLOADING_ENABLED c=20 r=4
"Autoloading filament is active, just press the knob and insert filament..."
@ -84,7 +88,7 @@
#MSG_BED_HEATING
"Bed Heating"
"Zahrivani bed"
"Zahrivani bedu"
#MSG_BED_CORRECTION_MENU
"Bed level correct"
@ -166,6 +170,10 @@
"Crash det."
"\x00"
#
"Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu"
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
#MSG_CRASH_DETECTED c=20 r=1
"Crash detected."
"Detekovan naraz."
@ -206,10 +214,6 @@
"Eject filament"
"Vysunout filament"
#
"Eject"
"Vysunout"
#MSG_EJECTING_FILAMENT c=20 r=1
"Ejecting filament"
"Vysouvam filament"
@ -426,18 +430,10 @@
"I will run z calibration now."
"Nyni provedu z kalibraci."
#MSG_WIZARD_V2_CAL_2 c=20 r=12
"I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
"Zacnu tisknout linku a Vy budete postupne snizovat trysku otacenim tlacitka dokud nedosahnete optimalni vysky. Prohlednete si obrazky v nasi prirucce v kapitole Kalibrace."
#MSG_WATCH
"Info screen"
"Informace"
#
"Is filament 1 loaded?"
"Je filament 1 zaveden?"
#MSG_INSERT_FILAMENT c=20
"Insert filament"
"Vlozte filament"
@ -446,14 +442,6 @@
"Is filament loaded?"
"Je filament zaveden?"
#MSG_WIZARD_PLA_FILAMENT c=20 r=2
"Is it PLA filament?"
"Je to PLA filament?"
#MSG_PLA_FILAMENT_LOADED c=20 r=2
"Is PLA filament loaded?"
"Je PLA filament zaveden?"
#MSG_STEEL_SHEET_CHECK c=20 r=2
"Is steel sheet on heatbed?"
"Je tiskovy plat na podlozce?"
@ -462,6 +450,10 @@
"Last print failures"
"Selhani posl. tisku"
#
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy"
#
"Last print"
"Posledni tisk"
@ -472,7 +464,7 @@
#
"Left"
"Vlevo:"
"Vlevo"
#MSG_BED_CORRECTION_LEFT c=14 r=1
"Left side [um]"
@ -656,7 +648,7 @@
#
"Nozzle FAN"
"Tryska V."
"Vent. trysky"
#MSG_PAUSE_PRINT
"Pause print"
@ -698,14 +690,6 @@
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
"Prosim nahlednete do prirucky 3D tiskare a opravte problem. Pote obnovte Pruvodce restartovanim tiskarny."
#MSG_WIZARD_LOAD_FILAMENT c=20 r=8
"Please insert PLA filament to the extruder, then press knob to load it."
"Prosim vlozte PLA filament do extruderu, pote stisknete tlacitko pro zavedeni filamentu."
#MSG_PLEASE_LOAD_PLA c=20 r=4
"Please load PLA filament first."
"Nejdrive prosim zavedte PLA filament."
#MSG_CHECK_IDLER c=20 r=4
"Please open idler and remove filament manually."
"Prosim otevrete idler a manualne odstrante filament."
@ -718,10 +702,6 @@
"Please press the knob to unload filament"
"Pro vysunuti filamentu stisknete prosim tlacitko"
#
"Please insert PLA filament to the first tube of MMU, then press the knob to load it."
"Prosim vlozte PLA filament do trubicky MMU, pote stisknete tlacitko pro zavedeni filamentu."
#MSG_PULL_OUT_FILAMENT c=20 r=4
"Please pull out filament immediately"
"Prosim vyjmete urychlene filament"
@ -788,7 +768,7 @@
#MSG_SELFTEST_PRINT_FAN_SPEED c=18
"Print fan:"
"Tiskovy v:"
"Tiskovy vent.:"
#MSG_CARD_MENU
"Print from SD"
@ -812,7 +792,19 @@
#
"Print FAN"
"Tiskovy v"
"Tiskovy vent."
#
"Please insert filament into the extruder, then press the knob to load it."
"Prosim vlozte filament do extruderu a stisknete tlacitko k jeho zavedeni"
#
"Please insert filament into the first tube of the MMU, then press the knob to load it."
"Prosim vlozte filament do prvni trubicky MMU a stisknete tlacitko k jeho zavedeni"
#
"Please load filament first."
"Prosim nejdriv zavedte filament"
#MSG_PRUSA3D
"prusa3d.com"
@ -910,10 +902,6 @@
"Select nozzle preheat temperature which matches your material."
"Vyberte teplotu predehrati trysky ktera odpovida vasemu materialu."
#
"Select PLA filament:"
"Vyberte PLA filament:"
#MSG_SET_TEMPERATURE c=19 r=1
"Set temperature:"
"Nastavte teplotu:"
@ -947,8 +935,8 @@
"Cas"
#
"Severe skew"
"Tezke zkoseni"
"Severe skew:"
"Tezke zkoseni:"
#MSG_SORT_ALPHA
"Alphabet"
@ -963,8 +951,8 @@
"Hlasity"
#
"Slight skew"
"Lehke zkoseni"
"Slight skew:"
"Lehke zkoseni:"
#MSG_SOUND
"Sound"
@ -1010,6 +998,10 @@
"Swapped"
"Prohozene"
#
"Select filament:"
"Zvolte filament:"
#MSG_TEMP_CALIBRATION c=20 r=1
"Temp. cal. "
"Tepl. kal. "
@ -1018,6 +1010,10 @@
"Temp. cal. [on]"
"Tepl. kal. [zap]"
#
"Select temperature which matches your material."
"Zvolte teplotu, ktera odpovida vasemu materialu."
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
"Temp. cal. [off]"
"Tepl. kal. [vyp]"
@ -1198,6 +1194,10 @@
"Y distance from min"
"Y vzdalenost od min"
#
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
"\x00"
#
"Y-correct:"
"Korekce Y:"
@ -1383,8 +1383,8 @@
"Plat"
#
"Sound [assist]"
"Zvuk [Asist.]"
"Sound [assist]"
"Zvuk [Asist.]"
#
"Steel sheets"
@ -1401,3 +1401,7 @@
#
"Z-probe nr. [3]"
"Pocet mereni Z [3]"
#
"Z-probe nr. [5]"
"Pocet mereni Z [5]"

View File

@ -1,3 +1,7 @@
#
"[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
"[%.7s]Z Einstell.\x0aWert gesetzt,weiter\x0aoder mit 0 beginnen?\x0a%cWeiter%cNeu beginnen"
#MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
" of 4"
" von 4"
@ -56,11 +60,11 @@
#MSG_AUTOLOAD_FILAMENT c=17
"AutoLoad filament"
"Auto-Laden Filament"
"AutoLaden Filament"
#MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
"Autoloading filament available only when filament sensor is turned on..."
"Automatisches Laden Filament nur bei einge schaltetem Filament- sensor verfuegbar..."
"Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..."
#MSG_AUTOLOADING_ENABLED c=20 r=4
"Autoloading filament is active, just press the knob and insert filament..."
@ -166,6 +170,10 @@
"Crash det."
"Crash Erk."
#
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
"Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
#MSG_CRASH_DETECTED c=20 r=1
"Crash detected."
"Crash erkannt."
@ -206,10 +214,6 @@
"Eject filament"
"Filamentauswurf"
#
"Eject"
"Auswurf"
#MSG_EJECTING_FILAMENT c=20 r=1
"Ejecting filament"
"werfe Filament aus"
@ -284,7 +288,7 @@
#MSG_FILAMENT_CLEAN c=20 r=2
"Filament extruding & with correct color?"
"Filament extrudiert + richtige Farbe?"
"Filament extrudiert mit richtiger Farbe?"
#MSG_NOT_LOADED c=19
"Filament not loaded"
@ -426,18 +430,10 @@
"I will run z calibration now."
"Ich werde jetzt die Z Kalibrierung durchfuehren."
#MSG_WIZARD_V2_CAL_2 c=20 r=12
"I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
"Ich werde jetzt eine Linie drucken. Waehrend des Druckes koennen Sie die Duese allmaehlich senken, indem Sie den Knopf drehen, bis Sie die optimale Hoehe erreichen. Sehen Sie sich die Bilder in unserem Handbuch im Kapitel Kalibrierung an."
#MSG_WATCH
"Info screen"
"Infoanzeige"
#
"Is filament 1 loaded?"
"Wurde Filament 1 geladen?"
#MSG_INSERT_FILAMENT c=20
"Insert filament"
"Filament einlegen"
@ -446,14 +442,6 @@
"Is filament loaded?"
"Ist das Filament geladen?"
#MSG_WIZARD_PLA_FILAMENT c=20 r=2
"Is it PLA filament?"
"Ist es wirklich PLA Filament?"
#MSG_PLA_FILAMENT_LOADED c=20 r=2
"Is PLA filament loaded?"
"Ist PLA Filament geladen?"
#MSG_STEEL_SHEET_CHECK c=20 r=2
"Is steel sheet on heatbed?"
"Liegt das Stahlblech auf dem Heizbett?"
@ -462,6 +450,10 @@
"Last print failures"
"Letzte Druckfehler"
#
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
#
"Last print"
"Letzter Druck"
@ -520,11 +512,11 @@
#MSG_MESH_BED_LEVELING
"Mesh Bed Leveling"
"Mesh Bett Ausgleich"
"MeshBett Ausgleich"
#MSG_MMU_OK_RESUMING_POSITION c=20 r=4
"MMU OK. Resuming position..."
"MMU OK. Position wiederherstellen... "
"MMU OK. Position wiederherstellen..."
#MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
"MMU OK. Resuming temperature..."
@ -698,14 +690,6 @@
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
"Bitte lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie dann mit dem Assistenten fort, indem Sie den Drucker neu starten."
#MSG_WIZARD_LOAD_FILAMENT c=20 r=8
"Please insert PLA filament to the extruder, then press knob to load it."
"Legen Sie bitte PLA Filament in den Extruder und druecken Sie den Knopf, um es zu laden."
#MSG_PLEASE_LOAD_PLA c=20 r=4
"Please load PLA filament first."
"Bitte laden Sie zuerst PLA Filament."
#MSG_CHECK_IDLER c=20 r=4
"Please open idler and remove filament manually."
"Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
@ -718,10 +702,6 @@
"Please press the knob to unload filament"
"Bitte druecken Sie den Knopf um das Filament zu entladen."
#
"Please insert PLA filament to the first tube of MMU, then press the knob to load it."
"Legen Sie bitte PLA Filament in den ersten Schlauch der MMU und druecken Sie den Knopf, um es zu laden."
#MSG_PULL_OUT_FILAMENT c=20 r=4
"Please pull out filament immediately"
"Bitte ziehen Sie das Filament sofort heraus"
@ -796,7 +776,7 @@
#
"Press the knob"
"Knopf druecken"
"Knopf druecken zum"
#MSG_PRINT_PAUSED c=20 r=1
"Print paused"
@ -812,7 +792,19 @@
#
"Print FAN"
"Druckvent"
"Druckvent."
#
"Please insert filament into the extruder, then press the knob to load it."
"Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden."
#
"Please insert filament into the first tube of the MMU, then press the knob to load it."
"Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden."
#
"Please load filament first."
"Bitte laden Sie zuerst das Filament."
#MSG_PRUSA3D
"prusa3d.com"
@ -836,7 +828,7 @@
#MSG_CALIBRATE_BED_RESET
"Reset XYZ calibr."
"XYZ Kalibr. zuruecksetzen."
"Reset XYZ Kalibr."
#MSG_BED_CORRECTION_RESET
"Reset"
@ -852,7 +844,7 @@
#MSG_BED_CORRECTION_RIGHT c=14 r=1
"Right side[um]"
"Rechts [um]"
"Rechts [um]"
#MSG_RPI_PORT
"RPi port"
@ -900,7 +892,7 @@
#MSG_SELFTEST_FAILED c=20
"Selftest failed "
"Selbsttest misslang "
"Selbsttest Error "
#MSG_FORCE_SELFTEST c=20 r=8
"Selftest will be run to calibrate accurate sensorless rehoming."
@ -910,10 +902,6 @@
"Select nozzle preheat temperature which matches your material."
"Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
#
"Select PLA filament:"
"PLA Filament auswaehlen:"
#MSG_SET_TEMPERATURE c=19 r=1
"Set temperature:"
"Temp. einstellen:"
@ -947,8 +935,8 @@
"Zeit"
#
"Severe skew"
"Schwer.Schr"
"Severe skew:"
"Schwer.Schr:"
#MSG_SORT_ALPHA
"Alphabet"
@ -963,8 +951,8 @@
"Laut"
#
"Slight skew"
"Leicht.Schr"
"Slight skew:"
"Leicht.Schr:"
#MSG_SOUND
"Sound"
@ -1010,6 +998,10 @@
"Swapped"
"Ausgetauscht"
#
"Select filament:"
"Filament auswaehlen:"
#MSG_TEMP_CALIBRATION c=20 r=1
"Temp. cal. "
"Temp Kalib. "
@ -1018,6 +1010,10 @@
"Temp. cal. [on]"
"Temp. Kal. [an]"
#
"Select temperature which matches your material."
"Waehlen Sie die Temperatur, die zu Ihrem Material passt."
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
"Temp. cal. [off]"
"Temp. Kal. [aus]"
@ -1068,11 +1064,11 @@
#
"to load filament"
"zum Filament laden"
"Filament laden"
#
"to unload filament"
"zum Filament entladen"
"Filament entladen"
#MSG_UNLOAD_FILAMENT c=17
"Unload filament"
@ -1194,11 +1190,14 @@
"XYZ calibration failed. Right front calibration point not reachable."
"XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist nicht erreichbar."
#
"Y distance from min"
"Y Entfernung vom Min"
#
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
"\x00"
#
"Y-correct:"
"Y-Korrektur:"
@ -1213,7 +1212,7 @@
#
"Checks"
"\x00"
"Kontrolle"
#MSG_ON
"On"
@ -1233,11 +1232,11 @@
#
"Firmware [strict]"
"Firmware [streng]"
"Firmware [strikt]"
#
"Firmware [warn]"
"\x00"
"Firmware [warnen]"
#
"HW Setup"
@ -1261,15 +1260,15 @@
#
"Mesh [3x3]"
"\x00"
"Gitter [3x3]"
#
"Mesh [7x7]"
"\x00"
"Gitter [7x7]"
#
"Mesh bed leveling"
"Mesh Bett Ausgleich"
"MeshBett Ausgleich"
#
"MK3S firmware detected on MK3 printer"
@ -1293,11 +1292,11 @@
#
"Model [strict]"
"Modell [streng]"
"Modell [strikt]"
#
"Model [warn]"
"Modell [warn]"
"Modell [warnen]"
#
"Nozzle d. [0.25]"
@ -1317,11 +1316,11 @@
#
"Nozzle [strict]"
"Duese [streng]"
"Duese [strikt]"
#
"Nozzle [warn]"
"Duese [warn]"
"Duese [warnen]"
#
"G-code sliced for a different level. Continue?"
@ -1384,8 +1383,8 @@
"Blech"
#
"Sound [assist]"
"Sound [Assist]"
"Sound [assist]"
"Sound [Assist]"
#
"Steel sheets"
@ -1402,3 +1401,7 @@
#
"Z-probe nr. [3]"
"Z-Probe Nr. [3]"
#
"Z-probe nr. [5]"
"Z-Probe Nr. [5]"

View File

@ -1,3 +1,7 @@
#
"[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
"[%.7s]Ajuste Z\x0aAjustado, continuar\x0ao empezar de nuevo?\x0a%cContinuar%cRepetir"
#MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
" of 4"
" de 4"
@ -24,7 +28,7 @@
#MSG_BABYSTEPPING_Z c=15
"Adjusting Z:"
"Ajustando Z:"
"Ajustar-Z:"
#MSG_SELFTEST_CHECK_ALLCORRECT c=20
"All correct "
@ -60,11 +64,11 @@
#MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
"Autoloading filament available only when filament sensor is turned on..."
"La carga automatica de filamento solo funciona si el sensor de filamento esta activado..."
"La carga automatica solo funciona si el sensor de filamento esta activado..."
#MSG_AUTOLOADING_ENABLED c=20 r=4
"Autoloading filament is active, just press the knob and insert filament..."
"La carga automatica de filamento esta activada, pulse el dial e inserte el filamento..."
"La carga automatica esta activada, pulse el dial e inserte el filamento..."
#MSG_SELFTEST_AXIS_LENGTH
"Axis length"
@ -166,6 +170,10 @@
"Crash det."
"Det. choque"
#
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
"Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla."
#MSG_CRASH_DETECTED c=20 r=1
"Crash detected."
"Choque detectado."
@ -200,16 +208,12 @@
#MSG_EXTRUDER_CORRECTION c=10
"E-correct:"
"Correccion-E:"
"Corregir-E:"
#MSG_EJECT_FILAMENT c=17 r=1
"Eject filament"
"Expulsar filamento"
#
"Eject"
"Expulsar"
#MSG_EJECTING_FILAMENT c=20 r=1
"Ejecting filament"
"Expulsando filamento"
@ -426,18 +430,10 @@
"I will run z calibration now."
"Voy a hacer Calibracion Z ahora."
#MSG_WIZARD_V2_CAL_2 c=20 r=12
"I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
"Voy a comenzar a imprimir la linea y tu bajaras el nozzle gradualmente al rotar el dial, hasta que llegues a la altura optima. Mira las imagenes del capitulo Calibracion en el manual."
#MSG_WATCH
"Info screen"
"Monitorizar"
#
"Is filament 1 loaded?"
"?Esta cargado el filamento 1?"
#MSG_INSERT_FILAMENT c=20
"Insert filament"
"Introducir filamento"
@ -446,14 +442,6 @@
"Is filament loaded?"
"Esta el filamento cargado?"
#MSG_WIZARD_PLA_FILAMENT c=20 r=2
"Is it PLA filament?"
"Es el filamento PLA?"
#MSG_PLA_FILAMENT_LOADED c=20 r=2
"Is PLA filament loaded?"
"Esta el filamento PLA cargado?"
#MSG_STEEL_SHEET_CHECK c=20 r=2
"Is steel sheet on heatbed?"
"?Esta colocada la lamina de acero sobre la base?"
@ -462,6 +450,10 @@
"Last print failures"
"Ultimas impresiones fallidas"
#
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero."
#
"Last print"
"Ultima impresion"
@ -698,14 +690,6 @@
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
"Lee el manual y resuelve el problema. Despues, reinicia la impresora y continua con el Wizard"
#MSG_WIZARD_LOAD_FILAMENT c=20 r=8
"Please insert PLA filament to the extruder, then press knob to load it."
"Inserta, por favor, filamento PLA en el extrusor. Despues haz clic para cargarlo."
#MSG_PLEASE_LOAD_PLA c=20 r=4
"Please load PLA filament first."
"Carga el filamento PLA primero por favor."
#MSG_CHECK_IDLER c=20 r=4
"Please open idler and remove filament manually."
"Por favor abate el rodillo de empuje (idler) y retira el filamento manualmente."
@ -718,10 +702,6 @@
"Please press the knob to unload filament"
"Por favor, pulsa el dial para descargar el filamento"
#
"Please insert PLA filament to the first tube of MMU, then press the knob to load it."
"Por favor introduce el filamento al primer tubo MMU, despues presiona el dial para imprimirlo."
#MSG_PULL_OUT_FILAMENT c=20 r=4
"Please pull out filament immediately"
"Por favor retire el filamento de inmediato"
@ -812,7 +792,19 @@
#
"Print FAN"
"Vent.extr"
"Vent. extr"
#
"Please insert filament into the extruder, then press the knob to load it."
"Por favor, coloca el filamento en el extrusor, luego presiona el dial para cargarlo."
#
"Please insert filament into the first tube of the MMU, then press the knob to load it."
"Por favor, coloca el filamento en el primer tubo de la MMU, luego pulsa el dial para cargarlo."
#
"Please load filament first."
"Por favor, cargar primero el filamento. "
#MSG_PRUSA3D
"prusa3d.com"
@ -910,10 +902,6 @@
"Select nozzle preheat temperature which matches your material."
"Selecciona la temperatura para precalentar la boquilla que se ajuste a tu material. "
#
"Select PLA filament:"
"Seleccionar filamento PLA:"
#MSG_SET_TEMPERATURE c=19 r=1
"Set temperature:"
"Establecer temp.:"
@ -944,11 +932,11 @@
#MSG_SORT_TIME
"Time"
"Tiempo"
"Fecha"
#
"Severe skew"
"Incl.severa"
"Severe skew:"
"Incl.severa:"
#MSG_SORT_ALPHA
"Alphabet"
@ -963,8 +951,8 @@
"Alto"
#
"Slight skew"
"Liger.incl."
"Slight skew:"
"Liger.incl.:"
#MSG_SOUND
"Sound"
@ -1010,6 +998,10 @@
"Swapped"
"Intercambiado"
#
"Select filament:"
"Selecciona filamento:"
#MSG_TEMP_CALIBRATION c=20 r=1
"Temp. cal. "
"Cal. temp. "
@ -1018,6 +1010,10 @@
"Temp. cal. [on]"
"Cal. temp. [on]"
#
"Select temperature which matches your material."
"Selecciona la temperatura adecuada a tu material."
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
"Temp. cal. [off]"
"Cal. temp. [off]"
@ -1048,11 +1044,11 @@
#
"Total filament"
"Filamento total:"
"Filamento total"
#
"Total print time"
"Tiempo total :"
"Tiempo total"
#MSG_TUNE
"Tune"
@ -1164,7 +1160,7 @@
#
"X-correct:"
"Correccion-X:"
"Corregir-X:"
#MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
"XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
@ -1198,9 +1194,13 @@
"Y distance from min"
"Distancia en Y desde el min"
#
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
"\x00"
#
"Y-correct:"
"Correccion-Y:"
"Corregir-Y:"
#MSG_OFF
"Off"
@ -1383,8 +1383,8 @@
"Lamina"
#
"Sound [assist]"
"Sonido [asistido]"
"Sound [assist]"
"Sonido [asistido]"
#
"Steel sheets"
@ -1392,7 +1392,7 @@
#
"Z-correct:"
"Correccion-Z:"
"Corregir-Z:"
#
"Z-probe nr. [1]"
@ -1401,3 +1401,7 @@
#
"Z-probe nr. [3]"
"Z-sensor nr. [3]"
#
"Z-probe nr. [5]"
"Z-sensor nr. [5]"

View File

@ -1,10 +1,14 @@
#
"[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
"[%.7s]Ajust. du Z\x0aValeur enreg, contin\x0aou depart a zero?\x0a%cContinuer%cReset"
#MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
" of 4"
"de 4"
" de 4"
#MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
" of 9"
"de 9"
" de 9"
#MSG_MEASURED_OFFSET
"[0;0] point offset"
@ -16,7 +20,7 @@
#MSG_CRASH_DET_STEALTH_FORCE_OFF c=20 r=4
"WARNING:\x0aCrash detection\x0adisabled in\x0aStealth mode"
"ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode Furtif"
"ATTENTION:\x0aDetection de crash\x0adesactivee en\x0amode feutre"
#
">Cancel"
@ -24,7 +28,7 @@
#MSG_BABYSTEPPING_Z c=15
"Adjusting Z:"
"Ajuster Z :"
"Ajuster Z:"
#MSG_SELFTEST_CHECK_ALLCORRECT c=20
"All correct "
@ -32,7 +36,7 @@
#MSG_WIZARD_DONE c=20 r=8
"All is done. Happy printing!"
"Tout est pret. Bonne impression !"
"Tout est pret. Bonne impression!"
#
"Ambient"
@ -56,7 +60,7 @@
#MSG_AUTOLOAD_FILAMENT c=17
"AutoLoad filament"
"AutoCharge du filament"
"Autocharge du fil."
#MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
"Autoloading filament available only when filament sensor is turned on..."
@ -64,7 +68,7 @@
#MSG_AUTOLOADING_ENABLED c=20 r=4
"Autoloading filament is active, just press the knob and insert filament..."
"Chargement auto du filament actif, appuyez sur le btn et inserez le fil."
"Chargement auto. du fil. active, appuyez sur le bouton et inserez le fil."
#MSG_SELFTEST_AXIS_LENGTH
"Axis length"
@ -92,7 +96,7 @@
#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4
"Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."
"Echec bed leveling. Capt. non declenche. Debris sur buse ? En attente d'un reset."
"Echec bed leveling. Capt. non declenche. Debris sur buse? En attente d'un reset."
#MSG_BED
"Bed"
@ -104,7 +108,7 @@
#MSG_RECOVER_PRINT c=20 r=2
"Blackout occurred. Recover print?"
"Coupure detectee. Recup. impression ?"
"Coupure detectee. Reprendre impression?"
#
"Calibrating home"
@ -124,15 +128,15 @@
#MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
"Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
"Calibration de XYZ. Tournez le bouton pour monter le chariot de l'axe Z jusqu'aux butees. Cliquez une fois fait."
"Calibration de XYZ. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
#MSG_CALIBRATE_Z_AUTO c=20 r=2
"Calibrating Z"
"Calibration de Z"
"Calibration Z"
#MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
"Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
"Calibration de Z. Tournez le bouton pour monter le chariot de l'axe Z jusqu'aux butees. Cliquez une fois fait."
"Calibration de Z. Tournez le bouton pour faire monter l'extrudeur dans l'axe Z jusqu'aux butees. Cliquez une fois fait."
#MSG_HOMEYZ_DONE
"Calibration done"
@ -160,19 +164,23 @@
#
"Copy selected language?"
"Copier la langue selectionne ?"
"Copier la langue selectionne?"
#MSG_CRASHDETECT
"Crash det."
"Detect.crash"
#
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
"Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran."
#MSG_CRASH_DETECTED c=20 r=1
"Crash detected."
"Crash detecte."
#
"Crash detected. Resume print?"
"Crash detecte. Poursuivre l'impression ?"
"Crash detecte. Poursuivre l'impression?"
#
"Crash"
@ -184,7 +192,7 @@
#MSG_DATE c=17 r=1
"Date:"
"Date :"
"Date:"
#MSG_DISABLE_STEPPERS
"Disable steppers"
@ -196,7 +204,7 @@
#MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
"Do you want to repeat last step to readjust distance between nozzle and heatbed?"
"Voulez-vous repeter la derniere etape pour reajuster la distance entre la buse et le plateau chauffant ?"
"Voulez-vous repeter la derniere etape pour reajuster la distance entre la buse et le plateau chauffant?"
#MSG_EXTRUDER_CORRECTION c=10
"E-correct:"
@ -204,15 +212,11 @@
#MSG_EJECT_FILAMENT c=17 r=1
"Eject filament"
"Ejecter le fil."
#
"Eject"
"Ejecter"
"Remonter le fil."
#MSG_EJECTING_FILAMENT c=20 r=1
"Ejecting filament"
"Ejection filament"
"Le fil. remonte"
#MSG_SELFTEST_ENDSTOP_NOTHIT c=20 r=1
"Endstop not hit"
@ -232,11 +236,11 @@
#MSG_FSENS_NOT_RESPONDING c=20 r=4
"ERROR: Filament sensor is not responding, please check connection."
"ERREUR : Le capteur de filament ne repond pas, verifiez le branchement."
"ERREUR: Le capteur de filament ne repond pas, verifiez le branchement."
#MSG_ERROR
"ERROR:"
"ERREUR :"
"ERREUR:"
#MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
"Extruder fan:"
@ -252,15 +256,14 @@
#
"Fail stats MMU"
"Stat. echecs MMU"
"Stat. d'echec MMU"
#MSG_FSENSOR_AUTOLOAD
"F. autoload"
"Charg.auto.F."
"Autochargeur"
#
"Fail stats"
"Statist. d'echec"
"Stat. d'echec"
#MSG_FAN_SPEED c=14
"Fan speed"
@ -268,23 +271,22 @@
#MSG_SELFTEST_FAN c=20
"Fan test"
"Test ventilateur"
"Test du ventilateur"
#MSG_FANS_CHECK
"Fans check"
"Verif ventilo"
"Verif vent."
#MSG_FSENSOR
"Fil. sensor"
"Capteur Fil."
#
"Filam. runouts"
"Fins de filament"
#MSG_FILAMENT_CLEAN c=20 r=2
"Filament extruding & with correct color?"
"Filament extrude et avec bonne couleur ?"
"Filament extrude et avec bonne couleur?"
#MSG_NOT_LOADED c=19
"Filament not loaded"
@ -304,11 +306,11 @@
#MSG_FILE_INCOMPLETE c=20 r=2
"File incomplete. Continue anyway?"
"Fichier incomplet. Continuer qd meme ?"
"Fichier incomplet. Continuer qd meme?"
#MSG_FINISHING_MOVEMENTS c=20 r=1
"Finishing movements"
"Mouvements de fin"
"Mouvement final"
#MSG_V2_CALIBRATION c=17 r=1
"First layer cal."
@ -316,11 +318,11 @@
#MSG_WIZARD_SELFTEST c=20 r=8
"First, I will run the selftest to check most common assembly problems."
"D'abord, je vais lancer le Selftest pour verifier les problemes d'assemblage les plus communs."
"D'abord, je vais lancer le Auto-test pour verifier les problemes d'assemblage les plus communs."
#
"Fix the issue and then press button on MMU unit."
"Corrigez le probleme et appuyez sur le bouton de l'unite MMU."
"Corrigez le probleme et appuyez sur le bouton sur la MMU."
#MSG_FLOW
"Flow"
@ -332,7 +334,7 @@
#MSG_SELFTEST_COOLING_FAN c=20
"Front print fan?"
"Ventilo impr avant ?"
"Ventilo impr avant?"
#MSG_BED_CORRECTION_FRONT c=14 r=1
"Front side[um]"
@ -348,7 +350,7 @@
#MSG_BED_HEATING_SAFETY_DISABLED
"Heating disabled by safety timer."
"Chauffe desactivee par le compteur de securite."
"Chauffage desactivee par le compteur de securite."
#MSG_HEATING_COMPLETE c=20
"Heating done."
@ -360,7 +362,7 @@
#MSG_WIZARD_WELCOME c=20 r=7
"Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
"Bonjour, je suis votre imprimante Original Prusa i3. Voulez-vous que je vous guide a travers le processus d'installation ?"
"Bonjour, je suis votre imprimante Original Prusa i3. Voulez-vous que je vous guide a travers le processus d'installation?"
#MSG_PRUSA3D_HOWTO
"howto.prusa3d.com"
@ -384,11 +386,11 @@
#MSG_SELFTEST_CHECK_ENDSTOPS c=20
"Checking endstops"
"Verifications butees"
"Verification butees"
#MSG_SELFTEST_CHECK_HOTEND c=20
"Checking hotend "
"Verif. tete impr."
"Verif. du hotend"
#MSG_SELFTEST_CHECK_FSENSOR c=20
"Checking sensors "
@ -408,11 +410,11 @@
#MSG_CHOOSE_EXTRUDER c=20 r=1
"Choose extruder:"
"Choisir extrudeur :"
"Choisir extrudeur:"
#MSG_CHOOSE_FILAMENT c=20 r=1
"Choose filament:"
"Choix du filament :"
"Choix du filament:"
#MSG_FILAMENT c=17 r=1
"Filament"
@ -420,51 +422,39 @@
#MSG_WIZARD_XYZ_CAL c=20 r=8
"I will run xyz calibration now. It will take approx. 12 mins."
"Je vais maintenant lancer la calibration xyz. Cela prendra 12 min environ."
"Je vais maintenant lancer la calibration XYZ. Cela prendra 12 min environ."
#MSG_WIZARD_Z_CAL c=20 r=8
"I will run z calibration now."
"Je vais maintenant lancer la calibration z."
#MSG_WIZARD_V2_CAL_2 c=20 r=12
"I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
"Je vais commencer a imprimer une ligne et vous baisserez au fur et a mesure la buse en tournant le bouton jusqu'a atteindre la hauteur optimale. Regardez les photos dans notre manuel au chapitre Calibration"
"Je vais maintenant lancer la calibration Z."
#MSG_WATCH
"Info screen"
"Ecran d'info"
#
"Is filament 1 loaded?"
"Le filament 1 est-il charge ?"
#MSG_INSERT_FILAMENT c=20
"Insert filament"
"Inserez le filament"
#MSG_WIZARD_FILAMENT_LOADED c=20 r=2
"Is filament loaded?"
"Le filament est-il charge ?"
#MSG_WIZARD_PLA_FILAMENT c=20 r=2
"Is it PLA filament?"
"Est-ce du filament PLA ?"
#MSG_PLA_FILAMENT_LOADED c=20 r=2
"Is PLA filament loaded?"
"Le filament PLA est-il charge ?"
"Fil. est-il charge?"
#MSG_STEEL_SHEET_CHECK c=20 r=2
"Is steel sheet on heatbed?"
"Feuille d'acier sur plateau chauffant ?"
"Plaque d'impression sur le lit chauffant?"
#
"Last print failures"
"Echecs derniere impr"
"Echecs derniere imp."
#
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Si vous avez d'autres feuilles d'acier, calibrez leurs pre-reglages dans Reglages - Config HW - Feuilles d'acier."
#
"Last print"
"Derniere impression"
"Derniere impres."
#MSG_SELFTEST_EXTRUDER_FAN c=20
"Left hotend fan?"
@ -484,7 +474,7 @@
#MSG_BABYSTEP_Z
"Live adjust Z"
"Ajuster Z en direct"
"Ajuster Z en dir."
#MSG_LOAD_FILAMENT c=17
"Load filament"
@ -492,11 +482,11 @@
#MSG_LOADING_COLOR
"Loading color"
"Chargement couleur"
"Charg. de la couleur"
#MSG_LOADING_FILAMENT c=20
"Loading filament"
"Chargement filament"
"Chargement du fil."
#MSG_LOOSE_PULLEY c=20 r=1
"Loose pulley"
@ -504,7 +494,7 @@
#
"Load to nozzle"
"Charger dans la buse"
"Charger la buse"
#MSG_M117_V2_CALIBRATION c=25 r=1
"M117 First layer cal."
@ -512,7 +502,7 @@
#MSG_MAIN
"Main"
"Principal"
"Menu principal"
#MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
"Measuring reference height of calibration point"
@ -528,15 +518,15 @@
#MSG_MMU_OK_RESUMING_TEMPERATURE c=20 r=4
"MMU OK. Resuming temperature..."
"MMU OK. Remontee en temperature..."
"MMU OK. Rechauffage de la buse..."
#
"Measured skew"
"Deviation mesuree"
"Deviat.mesuree"
#
"MMU fails"
"Echec MMU"
"Echecs MMU"
#
"MMU load failed "
@ -560,7 +550,7 @@
#MSG_SILENT
"Silent"
"Silencieux"
"Feutre"
#
"MMU needs user attention."
@ -652,7 +642,7 @@
#
"Now remove the test print from steel sheet."
"Retirez maintenant l'impression de test de la feuille d'acier."
"Retirez maintenant l'impression de test de la plaque en acier."
#
"Nozzle FAN"
@ -684,7 +674,7 @@
#MSG_WIZARD_CLEAN_HEATBED c=20 r=8
"Please clean heatbed and then press the knob."
"Nettoyez le plateau chauffant et appuyez sur le bouton."
"Nettoyez la plaque en acier et appuyez sur le bouton."
#MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
"Please clean the nozzle for calibration. Click when done."
@ -692,19 +682,11 @@
#MSG_SELFTEST_PLEASECHECK
"Please check :"
"Verifiez :"
"Verifiez:"
#MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
"Merci de verifier notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante."
#MSG_WIZARD_LOAD_FILAMENT c=20 r=8
"Please insert PLA filament to the extruder, then press knob to load it."
"Inserez du filament PLA dans l'extrudeur puis appuyez sur le bouton pour le charger."
#MSG_PLEASE_LOAD_PLA c=20 r=4
"Please load PLA filament first."
"Chargez d'abord le filament PLA."
"Merci de consulter notre manuel et de corriger le probleme. Poursuivez alors l'assistant en redemarrant l'imprimante."
#MSG_CHECK_IDLER c=20 r=4
"Please open idler and remove filament manually."
@ -712,16 +694,12 @@
#MSG_PLACE_STEEL_SHEET c=20 r=4
"Please place steel sheet on heatbed."
"Placez la feuille d'acier sur le plateau chauffant."
"Placez la plaque en acier sur le plateau chauffant."
#MSG_PRESS_TO_UNLOAD c=20 r=4
"Please press the knob to unload filament"
"Appuyez sur le bouton pour decharger le filament"
#
"Please insert PLA filament to the first tube of MMU, then press the knob to load it."
"Veuillez inserer du filament PLA dans le premier tube du MMU, et pressez sur le bouton pour le charger."
#MSG_PULL_OUT_FILAMENT c=20 r=4
"Please pull out filament immediately"
"Retirez immediatement le filament"
@ -732,7 +710,7 @@
#MSG_REMOVE_STEEL_SHEET c=20 r=4
"Please remove steel sheet from heatbed."
"Retirez la feuille d'acier du plateau chauffant."
"Retirez la plaque en acier du plateau chauffant."
#MSG_RUN_XYZ c=20 r=4
"Please run XYZ calibration first."
@ -748,7 +726,7 @@
#
"Please remove shipping helpers first."
"Veuillez retirer d'abord les protections d'envoi."
"Retirez d'abord les protections de transport."
#MSG_PREHEAT_NOZZLE c=20
"Preheat the nozzle!"
@ -778,21 +756,21 @@
"Print aborted"
"Impression annulee"
#
# c=20 r=1
"Preheating to load"
"Chauffe pour charger"
#
# c=20 r=1
"Preheating to unload"
"Chauffe pr decharger"
"Chauf.pour decharger"
#MSG_SELFTEST_PRINT_FAN_SPEED c=18
"Print fan:"
"Vent.impr:"
"Vent. impr:"
#MSG_CARD_MENU
"Print from SD"
"Impr depuis la SD"
"Impr. depuis la SD"
#
"Press the knob"
@ -804,7 +782,7 @@
#
"Press the knob to resume nozzle temperature."
"Appuyez sur le bouton pour poursuivre la mise en temperature de la buse."
"Appuyez sur le bouton pour rechauffer la buse."
#MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
"Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
@ -812,7 +790,19 @@
#
"Print FAN"
"Vent.impr"
"Vent. impr"
#
"Please insert filament into the extruder, then press the knob to load it."
"Veuillez inserer le filament dans l'extrudeur, puis appuyez sur le bouton pour le charger."
#
"Please insert filament into the first tube of the MMU, then press the knob to load it."
"Veuillez inserer le filament dans le premier tube du MMU, puis appuyez sur le bouton pour le charger."
#
"Please load filament first."
"Veuillez d'abord charger un filament."
#MSG_PRUSA3D
"prusa3d.com"
@ -836,7 +826,7 @@
#MSG_CALIBRATE_BED_RESET
"Reset XYZ calibr."
"Reinit.calibr. XYZ"
"Reinit. calib. XYZ"
#MSG_BED_CORRECTION_RESET
"Reset"
@ -860,7 +850,7 @@
#MSG_WIZARD_RERUN c=20 r=7
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
"Lancer l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer ?"
"Lancement de l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer?"
#MSG_SD_CARD
"SD card"
@ -868,7 +858,7 @@
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY
"FlashAir"
"\x00"
"FlshAir"
#
"Right"
@ -896,7 +886,7 @@
#MSG_SELFTEST_ERROR
"Selftest error !"
"Erreur auto-test !"
"Erreur auto-test!"
#MSG_SELFTEST_FAILED c=20
"Selftest failed "
@ -910,13 +900,9 @@
"Select nozzle preheat temperature which matches your material."
"Selectionnez la temperature de prechauffage de la buse qui correspond a votre materiau."
#
"Select PLA filament:"
"Selectionnez le filament PLA :"
#MSG_SET_TEMPERATURE c=19 r=1
"Set temperature:"
"Regler temp. :"
"Regler temp.:"
#MSG_SETTINGS
"Settings"
@ -947,8 +933,8 @@
"Heure"
#
"Severe skew"
"Deviat.sev."
"Severe skew:"
"Deviat.sev.:"
#MSG_SORT_ALPHA
"Alphabet"
@ -963,8 +949,8 @@
"Fort"
#
"Slight skew"
"Deviat.leg."
"Slight skew:"
"Deviat.leg.:"
#MSG_SOUND
"Sound"
@ -972,12 +958,11 @@
#
"Some problem encountered, Z-leveling enforced ..."
"Problemes rencontres, nivellement de l'axe Z applique..."
"Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..."
#MSG_SOUND_ONCE
"Once"
"Une fois"
#MSG_SPEED
"Speed"
"Vitesse"
@ -1010,6 +995,10 @@
"Swapped"
"Echange"
#
"Select filament:"
"Selectionnez le filament:"
#MSG_TEMP_CALIBRATION c=20 r=1
"Temp. cal. "
"Calib. Temp."
@ -1018,6 +1007,10 @@
"Temp. cal. [on]"
"Calib. Temp. [on]"
#
"Select temperature which matches your material."
"Selectionnez la temperature qui correspond a votre materiau."
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
"Temp. cal. [off]"
"Calib. Temp.[off]"
@ -1044,7 +1037,7 @@
#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=4
"There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
"Il y a encore besoin d'effectuer la calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration."
"Il faut toujours effectuer la Calibration Z. Veuillez suivre le manuel, chapitre Premiers pas, section Processus de calibration."
#
"Total filament"
@ -1112,23 +1105,23 @@
#
"Use unload to remove filament 1 if it protrudes outside of the rear MMU tube. Use eject if it is hidden in tube."
"Utilisez decharger pour retirer le filament 1 s'il depasse du tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube."
"Utilisez Remonter le fil. pour retirer le filament 1 s'il depasse du tube arriere du MMU. Utilisez ejecter s'il est cache dans le tube."
#MSG_CHANGED_BOTH c=20 r=4
"Warning: both printer type and motherboard type changed."
"Attention : Types d'imprimante et de carte mere modifies"
"Attention: Types d'imprimante et de carte mere modifies"
#MSG_CHANGED_MOTHERBOARD c=20 r=4
"Warning: motherboard type changed."
"Attention : Type de carte mere modifie."
"Attention: Type de carte mere modifie."
#MSG_CHANGED_PRINTER c=20 r=4
"Warning: printer type changed."
"Attention : Type d'imprimante modifie"
"Attention: Type d'imprimante modifie"
#MSG_UNLOAD_SUCCESSFUL c=20 r=2
"Was filament unload successful?"
"Dechargement du filament reussi ?"
"Dechargement du filament reussi?"
#MSG_SELFTEST_WIRINGERROR
"Wiring error"
@ -1152,7 +1145,7 @@
#MSG_WIZARD_QUIT c=20 r=8
"You can always resume the Wizard from Calibration -> Wizard."
"Vous pouvez toujours relancer l'assistant dans Calibration-> Assistant."
"Vous pouvez toujours relancer l'Assistant dans Calibration > Assistant."
#MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
"XYZ calibration all right. Skew will be corrected automatically."
@ -1160,7 +1153,7 @@
#MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
"XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
"Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot !"
"Calibration XYZ OK. Les axes X/Y sont legerement non perpendiculaires. Bon boulot!"
#
"X-correct:"
@ -1168,11 +1161,11 @@
#MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
"XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
"Calibration XYZ OK. Les axes X/Y sont perpendiculaires. Felicitations !"
"Calibration XYZ OK. Les axes X/Y sont perpendiculaires. Felicitations!"
#MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
"XYZ calibration compromised. Front calibration points not reachable."
"Calibration XYZ compromise. Les points de calibration avant ne sont pas atteignables."
"Calibration XYZ compromise. Les points de calibration en avant ne sont pas atteignables."
#MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
"XYZ calibration compromised. Right front calibration point not reachable."
@ -1180,7 +1173,7 @@
#MSG_LOAD_ALL c=17
"Load all"
"Tout charger"
"Charger un par un"
#
"XYZ calibration failed. Bed calibration point was not found."
@ -1188,7 +1181,7 @@
#
"XYZ calibration failed. Front calibration points not reachable."
"Echec calibration XYZ. Les points de calibration avant ne sont pas atteignables."
"Echec calibration XYZ. Les points de calibration en avant ne sont pas atteignables."
#
"XYZ calibration failed. Right front calibration point not reachable."
@ -1198,6 +1191,10 @@
"Y distance from min"
"Distance Y du min"
#
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
"\x00"
#
"Y-correct:"
"Correct-Y:"
@ -1244,15 +1241,15 @@
#
"Magnets comp.[N/A]"
"Comp. aimants[N/A]"
"Compens. aim.[N/A]"
#
"Magnets comp.[Off]"
"Comp. aimants[Off]"
"Compens. aim.[off]"
#
"Magnets comp. [On]"
"Comp. aimants [On]"
"Compens. aim. [on]"
#MSG_ON
"On"
@ -1276,11 +1273,11 @@
#
"MMU Mode [Normal]"
"Mode MMU [Normal]"
"Mode MMU [normal]"
#
"MMU Mode[Stealth]"
"Mode MMU [Furtif]"
"Mode MMU [feutre]"
#
"Mode change in progress ..."
@ -1336,7 +1333,7 @@
#
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
"Le G-code a ete prepare pour une autre version de l'imprimante. Veuillez decouper le modele a nouveau. L'impression a ete annulee. "
"Le G-code a ete prepare pour une autre version de l'imprimante. Veuillez decouper le modele a nouveau. L'impression a ete annulee."
#
"G-code sliced for a newer firmware. Continue?"
@ -1344,27 +1341,27 @@
#
"G-code sliced for a newer firmware. Please update the firmware. Print cancelled."
"Le G-code a ete prepare pour une version plus recente du firmware. Veuillez mettre a jour le firmware. L'impression annulee."
"Le G-code a ete prepare pour une version plus recente du firmware. Veuillez mettre a jour le firmware. L'impression annulee."
#
"PINDA:"
"PINDA:"
#
# c=20 r=1
"Preheating to cut"
"Prechauffage pour couper"
"Chauffe pour couper"
#
# c=20 r=1
"Preheating to eject"
"Prechauffage pour ejecter"
"Chauf. pour remonter"
#
"Printer nozzle diameter differs from the G-code. Continue?"
"Diametre de la buse de l'imprimante different du G-Code. Continuer ?"
"Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Continuer?"
#
"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled."
"Diametre de la buse de l'imprimante different du G-Code. Merci de verifier le parametre dans les reglages. Impression annulee."
"Diametre de la buse dans les reglages ne correspond pas a celui dans le G-Code. Merci de verifier le parametre dans les reglages. Impression annulee."
#
"Rename"
@ -1380,11 +1377,11 @@
#
"Sheet"
"Feuille"
"Plaque"
#
"Sound [assist]"
"Son [Assist]"
"Sound [assist]"
"Son [assist]"
#
"Steel sheets"
@ -1396,8 +1393,13 @@
#
"Z-probe nr. [1]"
"Sonde-Z num. [1]"
"Mesurer x-fois [1]"
#
"Z-probe nr. [3]"
"Sonde-Z num. [3]"
"Mesurer x-fois [3]"
#
"Z-probe nr. [5]"
"Mesurer x-fois [5]"

View File

@ -1,10 +1,14 @@
#
"[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
"[%.7s]Set valori\x0aComp. Z, continuare\x0ao iniziare da zero?\x0a%cContinua%cReset"
#MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
" of 4"
" su 4"
#MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 c=14
" of 9"
"su 9"
" su 9"
#MSG_MEASURED_OFFSET
"[0;0] point offset"
@ -64,7 +68,7 @@
#MSG_AUTOLOADING_ENABLED c=20 r=4
"Autoloading filament is active, just press the knob and insert filament..."
"Il caricamento automatico e attivo, premete la manopola e inserite il filamento..."
"Caricamento automatico attivo, premi la manopola e inserisci il filamento."
#MSG_SELFTEST_AXIS_LENGTH
"Axis length"
@ -100,7 +104,7 @@
#MSG_MENU_BELT_STATUS c=15 r=1
"Belt status"
"Stato delle cinghie"
"Stato cinghie"
#MSG_RECOVER_PRINT c=20 r=2
"Blackout occurred. Recover print?"
@ -164,7 +168,11 @@
#MSG_CRASHDETECT
"Crash det."
"Rilevam.imp."
"Rileva.crash"
#
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
"Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo."
#MSG_CRASH_DETECTED c=20 r=1
"Crash detected."
@ -206,10 +214,6 @@
"Eject filament"
"Espelli filamento "
#
"Eject"
"Espellere"
#MSG_EJECTING_FILAMENT c=20 r=1
"Ejecting filament"
"Espellendo filamento "
@ -256,7 +260,7 @@
#MSG_FSENSOR_AUTOLOAD
"F. autoload"
"Autocar.filam"
"Autocar.fil."
#
"Fail stats"
@ -276,8 +280,7 @@
#MSG_FSENSOR
"Fil. sensor"
"Sensor filam."
"Sensore fil."
#
"Filam. runouts"
"Filam. esauriti"
@ -312,7 +315,7 @@
#MSG_V2_CALIBRATION c=17 r=1
"First layer cal."
"Calibrazione primo layer."
"Cal. primo strato"
#MSG_WIZARD_SELFTEST c=20 r=8
"First, I will run the selftest to check most common assembly problems."
@ -426,18 +429,10 @@
"I will run z calibration now."
"Adesso avviero la Calibrazione Z."
#MSG_WIZARD_V2_CAL_2 c=20 r=12
"I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
"Adesso iniziero a stampare una linea e tu dovrai abbassare l'ugello poco per volta ruotando la manopola sino a raggiungere una altezza ottimale. Per favore dai uno sguardo all'immagine del nostro manuale, cap.Calibrazione."
#MSG_WATCH
"Info screen"
"Schermata info"
#
"Is filament 1 loaded?"
"Il filamento 1 e caricato?"
#MSG_INSERT_FILAMENT c=20
"Insert filament"
"Inserire filamento"
@ -446,14 +441,6 @@
"Is filament loaded?"
"Il filamento e stato caricato?"
#MSG_WIZARD_PLA_FILAMENT c=20 r=2
"Is it PLA filament?"
"E' un filamento di PLA?"
#MSG_PLA_FILAMENT_LOADED c=20 r=2
"Is PLA filament loaded?"
"E' stato caricato il filamento di PLA?"
#MSG_STEEL_SHEET_CHECK c=20 r=2
"Is steel sheet on heatbed?"
"La piastra d'acciaio e sul piano riscaldato?"
@ -462,6 +449,10 @@
"Last print failures"
"Fallimenti ultima stampa"
#
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio."
#
"Last print"
"Ultima stampa"
@ -476,11 +467,11 @@
#MSG_BED_CORRECTION_LEFT c=14 r=1
"Left side [um]"
"Sinistra [um]"
"Sinistra [um]"
#
"Lin. correction"
"Correzione lin."
"Correzione lineare"
#MSG_BABYSTEP_Z
"Live adjust Z"
@ -520,7 +511,7 @@
#MSG_MESH_BED_LEVELING
"Mesh Bed Leveling"
"Mesh livel. letto"
"Livel. piatto"
#MSG_MMU_OK_RESUMING_POSITION c=20 r=4
"MMU OK. Resuming position..."
@ -552,7 +543,7 @@
#MSG_MODE
"Mode"
"Modo"
"Mod."
#MSG_NORMAL
"Normal"
@ -698,14 +689,6 @@
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
"Per favore consulta il nostro manuale per risolvere il problema. Poi riprendi il Wizard dopo aver riavviato la stampante."
#MSG_WIZARD_LOAD_FILAMENT c=20 r=8
"Please insert PLA filament to the extruder, then press knob to load it."
"Per favore inserisci il filamento di PLA nell'estrusore, poi premi la manopola per caricare."
#MSG_PLEASE_LOAD_PLA c=20 r=4
"Please load PLA filament first."
"Per favore prima carica il filamento di PLA."
#MSG_CHECK_IDLER c=20 r=4
"Please open idler and remove filament manually."
"Aprire la guida filam. e rimuovere il filam. a mano"
@ -718,10 +701,6 @@
"Please press the knob to unload filament"
"Premete la manopola per scaricare il filamento "
#
"Please insert PLA filament to the first tube of MMU, then press the knob to load it."
"Per favore inserite del filamento PLA nel primo tubo del MMU, poi premete la manopola per caricarlo."
#MSG_PULL_OUT_FILAMENT c=20 r=4
"Please pull out filament immediately"
"Estrarre il filamento immediatamente"
@ -814,6 +793,18 @@
"Print FAN"
"Ventola di stampa"
#
"Please insert filament into the extruder, then press the knob to load it."
"Inserisci il filamento nell'estrusore, poi premi la manopola per caricarlo."
#
"Please insert filament into the first tube of the MMU, then press the knob to load it."
"Per favore inserisci il filamento nel primo tubo del MMU, poi premi la manopola per caricarlo."
#
"Please load filament first."
"Per favore prima carica il filamento."
#MSG_PRUSA3D
"prusa3d.com"
"\x00"
@ -910,10 +901,6 @@
"Select nozzle preheat temperature which matches your material."
"Selezionate la temperatura per il preriscaldamento dell'ugello adatta al vostro materiale."
#
"Select PLA filament:"
"Selezionate filamento PLA:"
#MSG_SET_TEMPERATURE c=19 r=1
"Set temperature:"
"Imposta temperatura:"
@ -944,11 +931,11 @@
#MSG_SORT_TIME
"Time"
"Tempo"
"Cron."
#
"Severe skew"
"Devia.grave"
"Severe skew:"
"Devia.grave:"
#MSG_SORT_ALPHA
"Alphabet"
@ -963,8 +950,8 @@
"Forte"
#
"Slight skew"
"Devia.lieve"
"Slight skew:"
"Devia.lieve:"
#MSG_SOUND
"Sound"
@ -1010,6 +997,10 @@
"Swapped"
"Scambiato"
#
"Select filament:"
"Seleziona il filamento:"
#MSG_TEMP_CALIBRATION c=20 r=1
"Temp. cal. "
"Calib. temp. "
@ -1018,6 +1009,10 @@
"Temp. cal. [on]"
"Calib. temp. [on]"
#
"Select temperature which matches your material."
"Seleziona la temperatura appropriata per il tuo materiale."
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
"Temp. cal. [off]"
"Calib. temp.[off]"
@ -1198,6 +1193,10 @@
"Y distance from min"
"Distanza Y dal min"
#
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
"\x00"
#
"Y-correct:"
"Correzione-Y:"
@ -1383,8 +1382,8 @@
"Piano"
#
"Sound [assist]"
"Suono [assistito]"
"Sound [assist]"
"Suono [assist.]"
#
"Steel sheets"
@ -1401,3 +1400,7 @@
#
"Z-probe nr. [3]"
"Z-probe nr. [3]"
#
"Z-probe nr. [5]"
"Z-probe nr. [5]"

View File

@ -1,3 +1,7 @@
#
"[%.7s]Live adj. Z\x0avalue set, continue\x0aor start from zero?\x0a%cContinue%cReset"
"[%.7s]Live Adj. Z\x0austaw., kontynuowac\x0aczy zaczac od 0?\x0a%cKontynuuj%cReset"
#MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 c=14
" of 4"
" z 4"
@ -49,18 +53,17 @@
#MSG_AUTO_DEPLETE c=17 r=1
"SpoolJoin"
"\x00"
#MSG_AUTO_HOME
"Auto home"
"Auto zerowanie"
#MSG_AUTOLOAD_FILAMENT c=17
"AutoLoad filament"
"AutoLadowanie fil."
"Autoladowanie fil."
#MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
"Autoloading filament available only when filament sensor is turned on..."
"Autoladowanie filamentu dostepne tylko gdy czujnik filamentu jest wlaczony..."
"Autoladowanie fil. dostepne tylko gdy czujnik filamentu jest wlaczony..."
#MSG_AUTOLOADING_ENABLED c=20 r=4
"Autoloading filament is active, just press the knob and insert filament..."
@ -88,7 +91,7 @@
#MSG_BED_CORRECTION_MENU
"Bed level correct"
"Korekta poziomowania stolu"
"Korekta stolu"
#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=4
"Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."
@ -166,6 +169,10 @@
"Crash det."
"Wykr.zderzen"
#
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
"Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym."
#MSG_CRASH_DETECTED c=20 r=1
"Crash detected."
"Zderzenie wykryte"
@ -188,7 +195,7 @@
#MSG_DISABLE_STEPPERS
"Disable steppers"
"Wylaczenie silnikow"
"Wylacz silniki"
#MSG_BABYSTEP_Z_NOT_SET c=20 r=12
"Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration."
@ -206,10 +213,6 @@
"Eject filament"
"Wysun filament"
#
"Eject"
"Wysun"
#MSG_EJECTING_FILAMENT c=20 r=1
"Ejecting filament"
"Wysuwanie filamentu"
@ -240,11 +243,11 @@
#MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
"Extruder fan:"
"Went. ekstr:"
"WentHotend:"
#MSG_INFO_EXTRUDER c=15 r=1
"Extruder info"
"Informacje o ekstruderze"
"Ekstruder - info"
#MSG_MOVE_E
"Extruder"
@ -284,7 +287,7 @@
#MSG_FILAMENT_CLEAN c=20 r=2
"Filament extruding & with correct color?"
"Filament wychodzi z dyszy a kolor jest czysty?"
"Filament wychodzi z dyszy, kolor jest ok?"
#MSG_NOT_LOADED c=19
"Filament not loaded"
@ -426,18 +429,10 @@
"I will run z calibration now."
"Przeprowadze kalibracje Z."
#MSG_WIZARD_V2_CAL_2 c=20 r=12
"I will start to print line and you will gradually lower the nozzle by rotating the knob, until you reach optimal height. Check the pictures in our handbook in chapter Calibration."
"Zaczne drukowac linie. Stopniowo opuszczaj dysze przekrecajac pokretlo, poki nie uzyskasz optymalnej wysokosci. Sprawdz obrazki w naszym Podreczniku w rozdz. Kalibracja"
#MSG_WATCH
"Info screen"
"Ekran informacyjny"
#
"Is filament 1 loaded?"
"Filament 1 zaladowany?"
#MSG_INSERT_FILAMENT c=20
"Insert filament"
"Wprowadz filament"
@ -446,14 +441,6 @@
"Is filament loaded?"
"Filament jest zaladowany?"
#MSG_WIZARD_PLA_FILAMENT c=20 r=2
"Is it PLA filament?"
"Czy to filament PLA?"
#MSG_PLA_FILAMENT_LOADED c=20 r=2
"Is PLA filament loaded?"
"Fialment PLA jest zaladowany?"
#MSG_STEEL_SHEET_CHECK c=20 r=2
"Is steel sheet on heatbed?"
"Czy plyta stal. jest na podgrzew. stole?"
@ -462,6 +449,10 @@
"Last print failures"
"Ostatnie bledy druku"
#
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe."
#
"Last print"
"Ost. wydruk"
@ -480,7 +471,7 @@
#
"Lin. correction"
"Korekcja lin."
"Korekcja liniowa"
#MSG_BABYSTEP_Z
"Live adjust Z"
@ -572,7 +563,7 @@
#MSG_STEALTH
"Stealth"
"\x00"
"Cichy"
#MSG_AUTO_POWER
"Auto power"
@ -656,7 +647,7 @@
#
"Nozzle FAN"
"Went. Hotend"
"WentHotend"
#MSG_PAUSE_PRINT
"Pause print"
@ -688,7 +679,7 @@
#MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
"Please clean the nozzle for calibration. Click when done."
"Dla prawidl. kalibracji nalezy oczyscic dysze. Potw. guzikiem."
"Dla prawidlowej kalibracji nalezy oczyscic dysze. Potwierdz guzikiem."
#MSG_SELFTEST_PLEASECHECK
"Please check :"
@ -698,14 +689,6 @@
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
"Przeczytaj nasz Podrecznik druku 3D aby naprawic problem. Potem wznow Asystenta przez restart drukarki."
#MSG_WIZARD_LOAD_FILAMENT c=20 r=8
"Please insert PLA filament to the extruder, then press knob to load it."
"Umiesc filament PLA w ekstruderze i nacisnij pokretlo, aby zaladowac."
#MSG_PLEASE_LOAD_PLA c=20 r=4
"Please load PLA filament first."
"Najpierw zaladuj filament PLA."
#MSG_CHECK_IDLER c=20 r=4
"Please open idler and remove filament manually."
"Prosze odciagnac dzwignie dociskowa ekstrudera i recznie usunac filament."
@ -718,10 +701,6 @@
"Please press the knob to unload filament"
"Nacisnij pokretlo aby rozladowac filament"
#
"Please insert PLA filament to the first tube of MMU, then press the knob to load it."
"Wsun filament PLA do pierwszej rurki MMU i nacisnij pokretlo aby go zaladowac."
#MSG_PULL_OUT_FILAMENT c=20 r=4
"Please pull out filament immediately"
"Wyciagnij filament teraz"
@ -788,7 +767,7 @@
#MSG_SELFTEST_PRINT_FAN_SPEED c=18
"Print fan:"
"Went.wydr:"
"WentWydruk:"
#MSG_CARD_MENU
"Print from SD"
@ -808,11 +787,23 @@
#MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
"Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
"Drukarka nie zostala jeszcze skalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem."
"Drukarka nie byla jeszcze kalibrowana. Kieruj sie Samouczkiem: rozdzial Pierwsze Kroki, sekcja Konfiguracja przed drukowaniem."
#
"Print FAN"
"Went.wydr"
"WentWydruk"
#
"Please insert filament into the extruder, then press the knob to load it."
"Wsun filament do ekstrudera i nacisnij pokretlo, aby go zaladowac."
#
"Please insert filament into the first tube of the MMU, then press the knob to load it."
"Wsun filament do pierwszego kanalu w MMU2 i nacisnij pokretlo, aby go zaladowac."
#
"Please load filament first."
"Najpierw zaladuj filament."
#MSG_PRUSA3D
"prusa3d.com"
@ -888,7 +879,7 @@
#MSG_SELFTEST_START c=20
"Self test start "
"Rozpoczynanie Selftestu"
"Selftest startuje"
#MSG_SELFTEST
"Selftest "
@ -896,7 +887,7 @@
#MSG_SELFTEST_ERROR
"Selftest error !"
"Blad selftest !"
"Blad selftest!"
#MSG_SELFTEST_FAILED c=20
"Selftest failed "
@ -910,13 +901,9 @@
"Select nozzle preheat temperature which matches your material."
"Wybierz temperature grzania dyszy odpowiednia dla materialu."
#
"Select PLA filament:"
"Wybierz filament PLA:"
#MSG_SET_TEMPERATURE c=19 r=1
"Set temperature:"
"Ustaw. temperatury:"
"Ustaw temperature:"
#MSG_SETTINGS
"Settings"
@ -947,12 +934,12 @@
"Czas"
#
"Severe skew"
"ZnacznySkos"
"Severe skew:"
"Znaczny skos:"
#MSG_SORT_ALPHA
"Alphabet"
"Alfabet"
"Alfab"
#MSG_SORTING c=20 r=1
"Sorting files"
@ -963,8 +950,8 @@
"Glosny"
#
"Slight skew"
"Lekki skos"
"Slight skew:"
"Lekki skos:"
#MSG_SOUND
"Sound"
@ -972,12 +959,11 @@
#
"Some problem encountered, Z-leveling enforced ..."
"Wykryto problem, wymuszono poziomowanie osi Z ..."
"Wykryto problem, wymuszono poziomowanie osi Z."
#MSG_SOUND_ONCE
"Once"
"1-raz"
#MSG_SPEED
"Speed"
"Predkosc"
@ -1010,6 +996,10 @@
"Swapped"
"Zamieniono"
#
"Select filament:"
"Wybierz filament:"
#MSG_TEMP_CALIBRATION c=20 r=1
"Temp. cal. "
"Kalibracja temp."
@ -1018,6 +1008,10 @@
"Temp. cal. [on]"
"Kalibr.temp. [wl]"
#
"Select temperature which matches your material."
"Wybierz temperature, ktora odpowiada Twojemu filamentowi."
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
"Temp. cal. [off]"
"Kalibr.temp.[wyl]"
@ -1048,11 +1042,11 @@
#
"Total filament"
"Calkowita dlugosc filamentu"
"Zuzycie filamentu"
#
"Total print time"
"Calkowity czas druku"
"Laczny czas druku"
#MSG_TUNE
"Tune"
@ -1198,6 +1192,10 @@
"Y distance from min"
"Dystans od 0 w osi Y"
#
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
"\x00"
#
"Y-correct:"
"Korekcja-Y:"
@ -1248,7 +1246,7 @@
#
"Magnets comp.[N/A]"
"Kor. magnesow [nd]"
"Kor. magnesow[N/D]"
#
"Magnets comp.[Off]"
@ -1268,7 +1266,7 @@
#
"Mesh bed leveling"
"Poziomowanie wg siatki"
"Poziomowanie stolu"
#
"MK3S firmware detected on MK3 printer"
@ -1383,8 +1381,8 @@
"Plyta"
#
"Sound [assist]"
"Dzwiek [asyst.]"
"Sound [assist]"
"Dzwiek [asyst.]"
#
"Steel sheets"
@ -1396,8 +1394,12 @@
#
"Z-probe nr. [1]"
"Pomiar-Z [1]"
"Ilosc Pomiarow [1]"
#
"Z-probe nr. [3]"
"Pomiar-Z [3]"
"Ilosc Pomiarow [3]"
#
"Z-probe nr. [5]"
"Ilosc Pomiarow [5]"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

252
lang/translations.md Normal file
View File

@ -0,0 +1,252 @@
# Translations
## Workflow
- Build firmware
- using `build.sh`
- using `PF-build.sh` with a `break` before `# build languages`
- change to `lang` folder
- check if lang scripts being able to run with `config.sh`
- if you get `Arduino main folder: NG` message change in `config.sh` `export ARDUINO=C:/arduino-1.8.5` to `export ARDUINO=<Path to your Arduino IDE folder>`
-example: `export ARDUINO=D:/Github/Prusa-Firmware/PF-build-env-1.0.6/windows-64`
- run `lang-build.sh en` to create english `lang_en.tmp`, `lang_en.dat` and `lang_en.bin` files
- change in `fw-build.sh` `IGNORE_MISSING_TEXT=1` to `IGNORE_MISSING_TEXT=0` so it stops with error and generates `not_used.txt` and `not_tran.txt`
- run modified `fw-build.sh`
- `not_tran.txt` should be reviewed and added as these are potential missing translations
- copy `not_tran.txt` as `lang_add.txt`
- check if there are things you don't want to translate or must be modifed
- als check that the strings do not start with `spaces` as the scripts doesn't handle these well at this moment.
- run `lang-add.sh lang_add.txt` to add the missing translations to `lang_en.txt` and `lang_en_??.txt`
- `not_used.txt` should only contain mesages that aren't used in this variant like MK2.5 vs MK3
- run `fw-clean.sh` to cleanup firmware related files
- delete `not_used.txt` and `not_tran.txt`
- run `lang-clean.sh` to cleanup language related files
- run `lang-export.sh all` to create PO files for translation these are stored in `/lang/po` folder
- Send them to translators and reviewers or
- copy these to `/lang/po/new` and
- translate these with POEdit the newly added messages
- easiest way is to choose `Validate`in POEdit as it shows you `errors` and the `missing transalations` / most likely the newly added at the top.
- The new translated files are expected in `/lang/po/new` folder so store the received files these
- run `lang-import.sh <language code (iso639-1)>` for each newly translated language
- script improvement to import "all" and other things would be great.
- Double check if something is missing or faulty
- run `lang-build.sh` to to create `lang_en.tmp/.dat/.bin` and `lang_en_??.tmp/.dat/.bin` files
- run `fw-build.sh` and check if there are still some messages in `not_tran.txt` that need attention
- After approval
- run `fw-clean.sh` to cleanup firmware related files
- run `lang-clean.sh` to cleanup language related files
- change in `fw-build.sh` back to `IGNORE_MISSING_TEXT=1`
- remove `break` from `PF-build.sh` script if that has been modified
- build your firmware with `build.sh`, `PF-build.sh` or how you normally do it.
- Check/Test firmware on printer
## Code / usage
There are 2 modes of operation. If `LANG_MODE==0`, only one language is being used (the default compilation approach from plain Arduino IDE).
The reset of this explanation is devoted to `LANG_MODE==1`:
`language.h`:
```C++
// section .loc_sec (originaly .progmem0) will be used for localized translated strings
#define PROGMEM_I2 __attribute__((section(".loc_sec")))
// section .loc_pri (originaly .progmem1) will be used for localized strings in english
#define PROGMEM_I1 __attribute__((section(".loc_pri")))
// section .noloc (originaly progmem2) will be used for not localized strings in english
#define PROGMEM_N1 __attribute__((section(".noloc")))
#define _I(s) (__extension__({static const char __c[] PROGMEM_I1 = "\xff\xff" s; &__c[0];}))
#define ISTR(s) "\xff\xff" s
#define _i(s) lang_get_translation(_I(s))
#define _T(s) lang_get_translation(s)
```
That explains the macros:
- `_i` expands into `lang_get_translation((__extension__({static const char __c[] PROGMEM_I1 = "\xff\xff" s; &__c[0];})))` . Note the two 0xff's in the beginning of the string. `_i` allows for declaring a string directly inplace of C++ code, no string table is used. The downside of this approach is obvious - the compiler is not able/willing to merge duplicit strings into one.
- `_T` expands into `lang_get_translation(s)` without the two 0xff's at the beginning. Must be used in conjunction with MSG tables in `messages.h`. Allows to declare a string only once and use many times.
- `_N` means not-translated. These strings reside in a different segment of memory.
The two 0xff's are somehow magically replaced by real string ID's where the translations are available (still don't know where).
```C++
const char* lang_get_translation(const char* s){
if (lang_selected == 0) return s + 2; //primary language selected, return orig. str.
if (lang_table == 0) return s + 2; //sec. lang table not found, return orig. str.
uint16_t ui = pgm_read_word(((uint16_t*)s)); //read string id
if (ui == 0xffff) return s + 2; //translation not found, return orig. str.
ui = pgm_read_word(((uint16_t*)(((char*)lang_table + 16 + ui*2)))); //read relative offset
if (pgm_read_byte(((uint8_t*)((char*)lang_table + ui))) == 0) //read first character
return s + 2;//zero length string == not translated, return orig. str.
return (const char*)((char*)lang_table + ui); //return calculated pointer
}
```
## Files
### `lang_en.txt`
```
#MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
"Crash detection can\x0abe turned on only in\x0aNormal mode"
```
### `lang_en_*.txt`
```
#MSG_CRASH_DET_ONLY_IN_NORMAL c=20 r=4
"Crash detection can\x0abe turned on only in\x0aNormal mode"
"Crash detekce muze\x0abyt zapnuta pouze v\x0aNormal modu"
```
1. a comment - usually a MSG define with number of characters (c) and rows (r)
2. English text
3. translated text
### `not_tran.txt`
A simple list of strings that are not translated yet.
### `not_used.txt`
A list os strings not currently used in this variant of the firmware or are obsolete.
Example: There are MK2.5 specific messages that aren't used when you compile a MK3 variant and vice versa. So be carefull and double check the code if this message is obsolete or just not used due to the chosen variant.
## Scripts
### `config.sh`
- Checks setup and sets auxiliary env vars used in many other scripts.
- Looks for env var `ARDUINO`. If not found/empty, a default `C:/arduino-1.8.5` is used.
- Sets env var `CONFIG_OK=1` when all good, otherwise sets `CONFIG_OK=0`
### `fw-build.sh`
Joins firmware HEX and language binaries into one file.
### `fw-clean.sh`
### `lang-add.sh`
Adds new messages into the dictionary regardless of whether there have been any older versions.
### `lang-build.sh`
Generates lang_xx.bin (language binary files) for the whole firmware build.
Arguments:
- `$1` : language code (`en`, `cz`, `de`, `es`, `fr`, `it`, `pl`) or `all`
- empty/no arguments defaults to `all`
Input: `lang_en.txt` or `lang_en_xx.txt`
Output: `lang_xx.bin`
Temporary files: `lang_xx.tmp` and `lang_xx.dat`
Description of the process:
The script first runs `lang-check.py $1` and removes empty lines and comments (and non-translated texts) into `lang_$1.tmp`.
The tmp file now contains all translated texts (some of them empty, i.e. "").
The tmp file is then transformed into `lang_$1.dat`, which is a simple dump of all texts together, each terminated with a `\x00`.
Format of the `bin` file:
- 00-01: `A5 5A`
- 02-03: `B4 4B`
- 04-05: 2B size
- 06-07: 2B number of strings
- 08-09: 2B checksum
- 0A-0B: 2B lang code hex data: basically `en` converted into `ne`, i.e. characters swapped. Only `cz` is changed into `sc` (old `cs` ISO code).
- 0C-0D: 2B signature low
- 0E-0F: 2B signature high
- 10-(10 + 2*number of strings): table of string offsets from the beginning of this file
- after the table there are the strings themselves, each terminated with `\x00`
The signature is composed of 2B number of strings and 2B checksum in lang_en.bin. Signature in lang_en.bin is zero.
### `lang-check.sh` and `lang-check.py`
Both do the same, only lang-check.py is newer, i.e. lang-check.sh is not used anymore.
lang-check.py makes a binary comparison between what's in the dictionary and what's in the binary.
### `lang-clean.sh`
Removes all language output files from lang folder. That means deleting:
- if [ "$1" = "en" ]; then
rm_if_exists lang_$1.tmp
else
rm_if_exists lang_$1.tmp
rm_if_exists lang_en_$1.tmp
rm_if_exists lang_en_$1.dif
rm_if_exists lang_$1.ofs
rm_if_exists lang_$1.txt
fi
rm_if_exists lang_$1_check.dif
rm_if_exists lang_$1.bin
rm_if_exists lang_$1.dat
rm_if_exists lang_$1_1.tmp
rm_if_exists lang_$1_2.tmp
### `lang-export.sh`
Exports PO (gettext) for external translators.
### `lang-import.sh`
Import from PO.
Arguments:
- `$1` : language code (`en`, `cz`, `de`, `es`, `fr`, `it`, `pl`)
- empty/no arguments quits the script
Input files: `<language code>.po` files like `de.po`, `es.po`, etc.
Input folder: ´/lang/po/new´
Output files:
Output foler: ´/lang/po/new´
Needed improments to scrpit:
- add `all` argument
- update `replace in <language> translations` to all known special characters the LCD display with Japanese ROM cannot display
- move `lang_en_<language code>.txt` to folder `/lang`
- cleanup `<language code>_filtered.po`, `<language code>_new.po` and `nonasci.txt`
### `progmem.sh`
Examine content of progmem sections (default is progmem1).
Input:
- $OUTDIR/Firmware.ino.elf
- $OUTDIR/sketch/*.o (all object files)
Outputs:
- text.sym - formated symbol listing of section '.text'
- $PROGMEM.sym - formated symbol listing of section '.progmemX'
- $PROGMEM.lss - disassembly listing file
- $PROGMEM.hex - variables - hex
- $PROGMEM.chr - variables - char escape
- $PROGMEM.var - variables - strings
- $PROGMEM.txt - text data only (not used)
Description of process:
- check input files
- remove output files
- list symbol table of section '.text' from output elf file to text.sym (sorted by address)
- calculate start and stop address of section '.$PROGMEM'
- dump $PROGMEM data in hex format, cut disassembly (keep hex data only) into $PROGMEM.lss
- convert $PROGMEM.lss to $PROGMEM.hex:
- replace empty lines with '|' (variables separated by empty lines)
- remove address from multiline variables (keep address at first variable line only)
- remove '<' and '>:', remove whitespace at end of lines
- remove line-endings, replace separator with '\n' (join hex data lines - each line will contain single variable)
- convert $PROGMEM.hex to $PROGMEM.chr (prepare string data for character check and conversion)
- replace first space with tab
- replace second and third space with tab and space
- replace all remaining spaces with '\x'
- replace all tabs with spaces
- convert $PROGMEM.chr to $PROGMEM.var (convert data to text) - a set of special characters is escaped here including `\x0a`
### `textaddr.sh`
Compiles `progmem1.var` and `lang_en.txt` files to `textaddr.txt` file (mapping of progmem addreses to text idenifiers).
Description of process:
- check if input files exists
- create sorted list of strings from progmem1.var and lang_en.txt
- lines from progmem1.var will contain addres (8 chars) and english text
- lines from lang_en.txt will contain linenumber and english text
- after sort this will generate pairs of lines (line from progmem1 first)
- result of sort is compiled with simple script and stored into file textaddr.txt
Input:
- progmem1.var
- lang_en.txt
Output:
- textaddr.txt
update_lang.sh