Merge branch 'MK3' into MK3_Dutch
Merge with MK3 and fix merge issues
This commit is contained in:
commit
049cca297b
13 changed files with 998 additions and 429 deletions
|
@ -399,7 +399,7 @@ const char menu_fmt_float31[] PROGMEM = "%-12.12S%+8.1f";
|
|||
|
||||
const char menu_fmt_float13[] PROGMEM = "%c%-13.13S%+5.3f";
|
||||
|
||||
const char menu_fmt_float13off[] PROGMEM = "%c%-13.13S%6.6s";
|
||||
const char menu_fmt_float13off[] PROGMEM = "%c%-13.13S%6.6S";
|
||||
|
||||
template<typename T>
|
||||
static void menu_draw_P(char chr, const char* str, int16_t val);
|
||||
|
@ -423,7 +423,7 @@ void menu_draw_P<uint8_t*>(char chr, const char* str, int16_t val)
|
|||
float factor = 1.0f + static_cast<float>(val) / 1000.0f;
|
||||
if (val <= _md->minEditValue)
|
||||
{
|
||||
lcd_printf_P(menu_fmt_float13off, chr, str, " [off]");
|
||||
lcd_printf_P(menu_fmt_float13off, chr, str, _i(" [off]"));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1561,11 +1561,14 @@ 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)
|
||||
if (SilentMode == 0xff){ //set power to High Power (MK2.5) or Normal Power (MK3, unused)
|
||||
SilentMode = SILENT_MODE_POWER;
|
||||
eeprom_update_byte((uint8_t*)EEPROM_SILENT, SilentMode);
|
||||
}
|
||||
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 +1590,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
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
//! @file
|
||||
//! @date Aug 28, 2019
|
||||
//! @author mkbel
|
||||
//! @brief LCD
|
||||
|
||||
#include "temperature.h"
|
||||
#include "ultralcd.h"
|
||||
|
@ -857,18 +860,23 @@ void lcdui_print_status_line(void)
|
|||
lcd_print(' ');
|
||||
}
|
||||
|
||||
//! @brief Show Status Screen
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |N 000/000D Z000.0 |
|
||||
//! |B 000/000D F100% |
|
||||
//! |USB100% T0 t--:-- |
|
||||
//! |Status line.........|
|
||||
//! ----------------------
|
||||
//! N - nozzle temp symbol LCD_STR_THERMOMETER
|
||||
//! D - Degree sysmbol LCD_STR_DEGREE
|
||||
//! B - bed temp symbol LCD_STR_BEDTEMP
|
||||
//! F - feedrate symbol LCD_STR_FEEDRATE
|
||||
//! t - clock symbol LCD_STR_THERMOMETER
|
||||
//! @endcode
|
||||
void lcdui_print_status_screen(void)
|
||||
{
|
||||
//|01234567890123456789|
|
||||
//|N 000/000D Z000.0 |
|
||||
//|B 000/000D F100% |
|
||||
//|USB100% T0 t--:-- |
|
||||
//|Status line.........|
|
||||
//----------------------
|
||||
//N - nozzle temp symbol LCD_STR_THERMOMETER
|
||||
//B - bed temp symbol LCD_STR_BEDTEMP
|
||||
//F - feedrate symbol LCD_STR_FEEDRATE
|
||||
//t - clock symbol LCD_STR_THERMOMETER
|
||||
|
||||
lcd_set_cursor(0, 0); //line 0
|
||||
|
||||
|
@ -1670,32 +1678,50 @@ static void lcd_cooldown()
|
|||
lcd_return_to_status();
|
||||
}
|
||||
|
||||
//! @brief append text label with a colon and format it into a fixed size output buffer
|
||||
//! It would have been much easier if there was a ':' in the labels.
|
||||
//! But since the texts like Bed, Nozzle and PINDA are used in other places
|
||||
//! it is better to reuse these texts even though it requires some extra formatting code.
|
||||
//! @param [in] ipgmLabel pointer to string in PROGMEM
|
||||
//! @param [out] pointer to string in RAM which will receive the formatted text. Must be allocated to appropriate size
|
||||
//! @param [in] dstSize allocated length of dst
|
||||
static void pgmtext_with_colon(const char *ipgmLabel, char *dst, uint8_t dstSize){
|
||||
uint8_t i = 0;
|
||||
for(; i < dstSize - 2; ++i){ // 2 byte less than buffer, we'd be adding a ':' to the end
|
||||
uint8_t b = pgm_read_byte(ipgmLabel + i);
|
||||
if( ! b )
|
||||
break;
|
||||
dst[i] = b;
|
||||
}
|
||||
dst[i] = ':'; // append the colon
|
||||
++i;
|
||||
for(; i < dstSize - 1; ++i) // fill the rest with spaces
|
||||
dst[i] = ' ';
|
||||
dst[dstSize-1] = '\0'; // terminate the string properly
|
||||
}
|
||||
|
||||
//! @brief Show Extruder Info
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Nozzle FAN: 0000 RPM| FAN c=10 r=1 SPEED c=3 r=1
|
||||
//! |Print FAN: 0000 RPM| FAN c=10 r=1 SPEED c=3 r=1
|
||||
//! |Fil. Xd:000 Yd:000 | Fil. c=4 r=1
|
||||
//! |Int: 000 Shut: 000 | Int: c=4 r=1 Shut: c=4 r=1
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
void lcd_menu_extruder_info() // NOT static due to using inside "Marlin_main" module ("manage_inactivity()")
|
||||
{
|
||||
//|01234567890123456789|
|
||||
//|Nozzle FAN: RPM|
|
||||
//|Print FAN: RPM|
|
||||
//|Fil. Xd: Yd: |
|
||||
//|Int: Shut: |
|
||||
//----------------------
|
||||
int fan_speed_RPM[2];
|
||||
// Display Nozzle fan RPM
|
||||
fan_speed_RPM[0] = 60*fan_speed[0];
|
||||
fan_speed_RPM[1] = 60*fan_speed[1];
|
||||
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
|
||||
lcd_home();
|
||||
lcd_printf_P(_N(
|
||||
"%S: %4d RPM\n"
|
||||
"%S: %4d RPM\n"
|
||||
),
|
||||
_i("Nozzle FAN"),
|
||||
fan_speed_RPM[0],
|
||||
_i("Print FAN"),
|
||||
fan_speed_RPM[1]
|
||||
);
|
||||
// Display Nozzle fan RPM
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
lcd_home();
|
||||
static const size_t maxChars = 12;
|
||||
char nozzle[maxChars], print[maxChars];
|
||||
pgmtext_with_colon(_i("Nozzle FAN"), nozzle, maxChars); ////c=10 r=1
|
||||
pgmtext_with_colon(_i("Print FAN"), print, maxChars); ////c=10 r=1
|
||||
lcd_printf_P(_N("%s %4d RPM\n" "%s %4d RPM\n"), nozzle, 60*fan_speed[0], print, 60*fan_speed[1] );
|
||||
|
||||
#ifdef PAT9125
|
||||
// Display X and Y difference from Filament sensor
|
||||
|
@ -1715,8 +1741,9 @@ void lcd_menu_extruder_info() // NOT static due to using ins
|
|||
if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal))
|
||||
pat9125_update();
|
||||
lcd_printf_P(_N(
|
||||
"Fil. Xd:%3d Yd:%3d\n"
|
||||
"Int: %3d Shut: %3d"
|
||||
"Fil. Xd:%3d Yd:%3d\n" ////c=4 r=1
|
||||
"Int: %3d " ////c=4 r=1
|
||||
"Shut: %3d" ////c=4 r=1
|
||||
),
|
||||
pat9125_x, pat9125_y,
|
||||
pat9125_b, pat9125_s
|
||||
|
@ -1728,124 +1755,183 @@ void lcd_menu_extruder_info() // NOT static due to using ins
|
|||
menu_back_if_clicked();
|
||||
}
|
||||
|
||||
//! @brief Show Fails Statistics MMU
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! | Main | c=18 r=1
|
||||
//! | Last print | c=18 r=1
|
||||
//! | Total | c=18 r=1
|
||||
//! | |
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
static void lcd_menu_fails_stats_mmu()
|
||||
{
|
||||
MENU_BEGIN();
|
||||
MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
||||
MENU_ITEM_SUBMENU_P(_i("Last print"), lcd_menu_fails_stats_mmu_print);
|
||||
MENU_ITEM_SUBMENU_P(_i("Total"), lcd_menu_fails_stats_mmu_total);
|
||||
MENU_ITEM_SUBMENU_P(_i("Last print"), lcd_menu_fails_stats_mmu_print); ////c=18 r=1
|
||||
MENU_ITEM_SUBMENU_P(_i("Total"), lcd_menu_fails_stats_mmu_total); ////c=18 r=1
|
||||
MENU_END();
|
||||
}
|
||||
|
||||
//! @brief Show Last Print Failures Statistics MMU
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Last print failures | c=20 r=1
|
||||
//! | MMU fails: 000| c=14 r=1
|
||||
//! | MMU load fails: 000| c=14 r=1
|
||||
//! | |
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_fails_stats_mmu_print()
|
||||
{
|
||||
//01234567890123456789
|
||||
//Last print failures
|
||||
// MMU fails 000
|
||||
// MMU load fails 000
|
||||
//
|
||||
//////////////////////
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
uint8_t fails = eeprom_read_byte((uint8_t*)EEPROM_MMU_FAIL);
|
||||
uint16_t load_fails = eeprom_read_byte((uint8_t*)EEPROM_MMU_LOAD_FAIL);
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR("%S\n" " %S %-3d\n" " %S %-3d"), _i("Last print failures"), _i("MMU fails"), fails, _i("MMU load fails"), load_fails);
|
||||
menu_back_if_clicked_fb();
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR("%S\n" " %-16.16S%-3d\n" " %-16.16S%-3d"),
|
||||
_i("Last print failures"), ////c=20 r=1
|
||||
_i("MMU fails"), fails, ////c=14 r=1
|
||||
_i("MMU load fails"), load_fails); ////c=14 r=1
|
||||
menu_back_if_clicked_fb();
|
||||
}
|
||||
|
||||
//! @brief Show Total Failures Statistics MMU
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Total failures | c=20 r=1
|
||||
//! | MMU fails: 000| c=14 r=1
|
||||
//! | MMU load fails: 000| c=14 r=1
|
||||
//! | MMU power fails:000| c=14 r=1
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_fails_stats_mmu_total()
|
||||
{
|
||||
//01234567890123456789
|
||||
//Last print failures
|
||||
// MMU fails 000
|
||||
// MMU load fails 000
|
||||
//
|
||||
//////////////////////
|
||||
mmu_command(MmuCmd::S3);
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
uint8_t fails = eeprom_read_byte((uint8_t*)EEPROM_MMU_FAIL_TOT);
|
||||
uint16_t load_fails = eeprom_read_byte((uint8_t*)EEPROM_MMU_LOAD_FAIL_TOT);
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR("%S\n" " %S %-3d\n" " %S %-3d\n" " %S %-3d"), _i("Total failures"), _i("MMU fails"), fails, _i("MMU load fails"), load_fails, _i("MMU power fails"), mmu_power_failures);
|
||||
menu_back_if_clicked_fb();
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR("%S\n" " %-16.16S%-3d\n" " %-16.16S%-3d\n" " %-16.16S%-3d"),
|
||||
_i("Total failures"), ////c=20 r=1
|
||||
_i("MMU fails"), fails, ////c=14 r=1
|
||||
_i("MMU load fails"), load_fails, ////c=14 r=1
|
||||
_i("MMU power fails"), mmu_power_failures); ////c=14 r=1
|
||||
menu_back_if_clicked_fb();
|
||||
}
|
||||
|
||||
#if defined(TMC2130) && defined(FILAMENT_SENSOR)
|
||||
static const char failStatsFmt[] PROGMEM = "%S\n" " %-16.16S%-3d\n" " %-16.16S%-3d\n" " %-7.7SX %-3d Y %-3d";
|
||||
|
||||
//! @brief Show Total Failures Statistics MMU
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Total failures | c=20 r=1
|
||||
//! | Power failures: 000| c=14 r=1
|
||||
//! | Filam. runouts: 000| c=14 r=1
|
||||
//! | Crash X:000 Y:000| c=7 r=1
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_fails_stats_total()
|
||||
{
|
||||
//01234567890123456789
|
||||
//Total failures
|
||||
// Power failures 000
|
||||
// Filam. runouts 000
|
||||
// Crash X 000 Y 000
|
||||
//////////////////////
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
uint16_t power = eeprom_read_word((uint16_t*)EEPROM_POWER_COUNT_TOT);
|
||||
uint16_t filam = eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT);
|
||||
uint16_t crashX = eeprom_read_word((uint16_t*)EEPROM_CRASH_COUNT_X_TOT);
|
||||
uint16_t crashY = eeprom_read_word((uint16_t*)EEPROM_CRASH_COUNT_Y_TOT);
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR("%S\n" " %S %-3d\n" " %S %-3d\n" " %S X %-3d Y %-3d"), _i("Total failures"), _i("Power failures"), power, _i("Filam. runouts"), filam, _i("Crash"), crashX, crashY);
|
||||
menu_back_if_clicked_fb();
|
||||
lcd_home();
|
||||
lcd_printf_P(failStatsFmt,
|
||||
_i("Total failures"), ////c=20 r=1
|
||||
_i("Power failures"), power, ////c=14 r=1
|
||||
_i("Filam. runouts"), filam, ////c=14 r=1
|
||||
_i("Crash"), crashX, crashY); ////c=7 r=1
|
||||
menu_back_if_clicked_fb();
|
||||
}
|
||||
|
||||
//! @brief Show Last Print Failures Statistics
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Last print failures | c=20 r=1
|
||||
//! | Power failures: 000| c=14 r=1
|
||||
//! | Filam. runouts: 000| c=14 r=1
|
||||
//! | Crash X:000 Y:000| c=7 r=1
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_fails_stats_print()
|
||||
{
|
||||
//01234567890123456789
|
||||
//Last print failures
|
||||
// Power failures 000
|
||||
// Filam. runouts 000
|
||||
// Crash X 000 Y 000
|
||||
//////////////////////
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
uint8_t power = eeprom_read_byte((uint8_t*)EEPROM_POWER_COUNT);
|
||||
uint8_t filam = eeprom_read_byte((uint8_t*)EEPROM_FERROR_COUNT);
|
||||
uint8_t crashX = eeprom_read_byte((uint8_t*)EEPROM_CRASH_COUNT_X);
|
||||
uint8_t crashY = eeprom_read_byte((uint8_t*)EEPROM_CRASH_COUNT_Y);
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR("%S\n" " %S %-3d\n" " %S %-3d\n" " %S X %-3d Y %-3d"), _i("Last print failures"), _i("Power failures"), power, _i("Filam. runouts"), filam, _i("Crash"), crashX, crashY);
|
||||
menu_back_if_clicked_fb();
|
||||
lcd_home();
|
||||
lcd_printf_P(failStatsFmt,
|
||||
_i("Last print failures"), ////c=20 r=1
|
||||
_i("Power failures"), power, ////c=14 r=1
|
||||
_i("Filam. runouts"), filam, ////c=14 r=1
|
||||
_i("Crash"), crashX, crashY); ////c=7 r=1
|
||||
menu_back_if_clicked_fb();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Open fail statistics menu
|
||||
*
|
||||
* This version of function is used, when there is filament sensor,
|
||||
* power failure and crash detection.
|
||||
* There are Last print and Total menu items.
|
||||
*/
|
||||
//! @brief Open fail statistics menu
|
||||
//!
|
||||
//! This version of function is used, when there is filament sensor,
|
||||
//! power failure and crash detection.
|
||||
//! There are Last print and Total menu items.
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! | Main | c=18 r=1
|
||||
//! | Last print | c=18 r=1
|
||||
//! | Total | c=18 r=1
|
||||
//! | |
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
|
||||
static void lcd_menu_fails_stats()
|
||||
{
|
||||
MENU_BEGIN();
|
||||
MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
||||
MENU_ITEM_SUBMENU_P(_i("Last print"), lcd_menu_fails_stats_print);
|
||||
MENU_ITEM_SUBMENU_P(_i("Total"), lcd_menu_fails_stats_total);
|
||||
MENU_ITEM_SUBMENU_P(_i("Last print"), lcd_menu_fails_stats_print); ////c=18 r=1
|
||||
MENU_ITEM_SUBMENU_P(_i("Total"), lcd_menu_fails_stats_total); ////c=18 r=1
|
||||
MENU_END();
|
||||
}
|
||||
|
||||
#elif defined(FILAMENT_SENSOR)
|
||||
/**
|
||||
* @brief Print last print and total filament run outs
|
||||
*
|
||||
* This version of function is used, when there is filament sensor,
|
||||
* but no other sensors (e.g. power failure, crash detection).
|
||||
*
|
||||
* Example screen:
|
||||
* @code
|
||||
* 01234567890123456789
|
||||
* Last print failures
|
||||
* Filam. runouts 0
|
||||
* Total failures
|
||||
* Filam. runouts 5
|
||||
* @endcode
|
||||
*/
|
||||
//!
|
||||
//! @brief Print last print and total filament run outs
|
||||
//!
|
||||
//! This version of function is used, when there is filament sensor,
|
||||
//! but no other sensors (e.g. power failure, crash detection).
|
||||
//!
|
||||
//! Example screen:
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Last print failures | c=20 r=1
|
||||
//! | Filam. runouts: 000| c=14 r=1
|
||||
//! |Total failures | c=20 r=1
|
||||
//! | Filam. runouts: 000| c=14 r=1
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_fails_stats()
|
||||
{
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
uint8_t filamentLast = eeprom_read_byte((uint8_t*)EEPROM_FERROR_COUNT);
|
||||
uint16_t filamentTotal = eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT);
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR("Last print failures\n" " Filam. runouts %-3d\n" "Total failures\n" " Filam. runouts %-3d"), filamentLast, filamentTotal);
|
||||
lcd_printf_P(PSTR("Last print failures\n" ////c=20 r=1
|
||||
" Filam. runouts %-3d\n" ////c=14 r=1
|
||||
"Total failures\n" ////c=20 r=1
|
||||
" Filam. runouts %-3d"), filamentLast, filamentTotal); ////c=14 r=1
|
||||
menu_back_if_clicked();
|
||||
}
|
||||
#else
|
||||
|
@ -1866,27 +1952,64 @@ extern char* __malloc_heap_start;
|
|||
extern char* __malloc_heap_end;
|
||||
#endif //DEBUG_STACK_MONITOR
|
||||
|
||||
//! @brief Show Debug Information
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |RAM statistics | c=20 r=1
|
||||
//! | SP_min: 0000| c=14 r=1
|
||||
//! | heap_start: 0000| c=14 r=1
|
||||
//! | heap_end: 0000| c=14 r=1
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_debug()
|
||||
{
|
||||
#ifdef DEBUG_STACK_MONITOR
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR("RAM statistics\n" " SP_min: 0x%04x\n" " heap_start: 0x%04x\n" " heap_end: 0x%04x"), SP_min, __malloc_heap_start, __malloc_heap_end);
|
||||
lcd_printf_P(PSTR("RAM statistics\n" ////c=20 r=1
|
||||
" SP_min: 0x%04x\n" ////c=14 r=1
|
||||
" heap_start: 0x%04x\n" ////c=14 r=1
|
||||
" heap_end: 0x%04x"), SP_min, __malloc_heap_start, __malloc_heap_end); ////c=14 r=1
|
||||
#endif //DEBUG_STACK_MONITOR
|
||||
|
||||
menu_back_if_clicked_fb();
|
||||
}
|
||||
#endif /* DEBUG_BUILD */
|
||||
|
||||
//! @brief common line print for lcd_menu_temperatures
|
||||
//! @param [in] ipgmLabel pointer to string in PROGMEM
|
||||
//! @param [in] value to be printed behind the label
|
||||
static void lcd_menu_temperatures_line(const char *ipgmLabel, int value){
|
||||
static const size_t maxChars = 15;
|
||||
char tmp[maxChars];
|
||||
pgmtext_with_colon(ipgmLabel, tmp, maxChars);
|
||||
lcd_printf_P(PSTR(" %s%3d\x01 \n"), tmp, value); // no need to add -14.14 to string alignment
|
||||
}
|
||||
|
||||
//! @brief Show Temperatures
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! | Nozzle: 000D| c=14 r=1
|
||||
//! | Bed: 000D| c=14 r=1
|
||||
//! | Ambient: 000D| c=14 r=1
|
||||
//! | PINDA: 000D| c=14 r=1
|
||||
//! ----------------------
|
||||
//! D - Degree sysmbol LCD_STR_DEGREE
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_temperatures()
|
||||
{
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
lcd_home();
|
||||
lcd_printf_P(PSTR(" %S: %d%c \n" " %S: %d%c \n"), _i("Nozzle"), (int)current_temperature[0], '\x01', _i("Bed"), (int)current_temperature_bed, '\x01');
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
lcd_home();
|
||||
lcd_menu_temperatures_line( _T(MSG_NOZZLE), (int)current_temperature[0] ); ////c=14 r=1
|
||||
lcd_menu_temperatures_line( _T(MSG_BED), (int)current_temperature_bed ); ////c=14 r=1
|
||||
#ifdef AMBIENT_THERMISTOR
|
||||
lcd_printf_P(PSTR(" %S: %d%c\n" " PINDA: %d%c"), _i("Ambient"), (int)current_temperature_ambient, '\x01', (int)current_temperature_pinda, '\x01');
|
||||
#else //AMBIENT_THERMISTOR
|
||||
lcd_printf_P(PSTR(" PINDA: %d%c"), (int)current_temperature_pinda, '\x01');
|
||||
#endif //AMBIENT_THERMISTOR
|
||||
lcd_menu_temperatures_line( _i("Ambient"), (int)current_temperature_ambient ); ////c=14 r=1
|
||||
#endif
|
||||
lcd_menu_temperatures_line( _i("PINDA"), (int)current_temperature_pinda ); ////c=14 r=1
|
||||
|
||||
|
||||
menu_back_if_clicked();
|
||||
}
|
||||
|
@ -1896,6 +2019,17 @@ static void lcd_menu_temperatures()
|
|||
#define VOLT_DIV_R2 2370
|
||||
#define VOLT_DIV_FAC ((float)VOLT_DIV_R2 / (VOLT_DIV_R2 + VOLT_DIV_R1))
|
||||
#define VOLT_DIV_REF 5
|
||||
//! @brief Show Voltages
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! | |
|
||||
//! | PWR: 00.0V | c=12 r=1
|
||||
//! | Bed: 00.0V | c=12 r=1
|
||||
//! | |
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_voltages()
|
||||
{
|
||||
lcd_timeoutToStatus.stop(); //infinite timeout
|
||||
|
@ -1908,6 +2042,17 @@ static void lcd_menu_voltages()
|
|||
#endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN
|
||||
|
||||
#ifdef TMC2130
|
||||
//! @brief Show Belt Status
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! | Belt status | c=18 r=1
|
||||
//! | X: 000 |
|
||||
//! | Y: 000 |
|
||||
//! | |
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_belt_status()
|
||||
{
|
||||
lcd_home();
|
||||
|
@ -1931,12 +2076,85 @@ static void lcd_menu_test_restore()
|
|||
}
|
||||
#endif //RESUME_DEBUG
|
||||
|
||||
//! @brief Show Preheat Menu
|
||||
static void lcd_preheat_menu()
|
||||
{
|
||||
eFilamentAction = FilamentAction::Preheat;
|
||||
mFilamentMenu();
|
||||
}
|
||||
|
||||
//! @brief Show Support Menu
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! | Main |
|
||||
//! | Firmware: | c=18 r=1
|
||||
//! | 3.7.2.-2363 | c=16 r=1
|
||||
//! | prusa3d.com | MSG_PRUSA3D
|
||||
//! | forum.prusa3d.com | MSG_PRUSA3D_FORUM
|
||||
//! | howto.prusa3d.com | MSG_PRUSA3D_HOWTO
|
||||
//! | -------------- | STR_SEPARATOR
|
||||
//! | 1_75mm_MK3 | FILAMENT_SIZE
|
||||
//! | howto.prusa3d.com | ELECTRONICS
|
||||
//! | howto.prusa3d.com | NOZZLE_TYPE
|
||||
//! | -------------- | STR_SEPARATOR
|
||||
//! | Date: | c=17 r=1
|
||||
//! | MMM DD YYYY | __DATE__
|
||||
//! | -------------- | STR_SEPARATOR
|
||||
//! @endcode
|
||||
//!
|
||||
//! If MMU is connected
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! | MMU2 connected | c=18 r=1
|
||||
//! | FW: 1.0.6-7064523 |
|
||||
//! @endcode
|
||||
//!
|
||||
//! If MMU is not connected
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! | MMU2 N/A | c=18 r=1
|
||||
//! @endcode
|
||||
//!
|
||||
//! If Flash Air is connected
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! | -------------- | STR_SEPARATOR
|
||||
//! | FlashAir IP Addr: | c=18 r=1
|
||||
//! | 192.168.1.100 |
|
||||
//! @endcode
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! | -------------- | STR_SEPARATOR
|
||||
//! | XYZ cal. details | MSG_XYZ_DETAILS
|
||||
//! | Extruder info | MSG_INFO_EXTRUDER
|
||||
//! | XYZ cal. details | MSG_INFO_SENSORS
|
||||
//! @endcode
|
||||
//!
|
||||
//! If TMC2130 defined
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! | Belt status | MSG_MENU_BELT_STATUS
|
||||
//! @endcode
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! | Temperatures | MSG_MENU_TEMPERATURES
|
||||
//! @endcode
|
||||
//!
|
||||
//! If Voltage Bed and PWR Pin are defined
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! | Voltages | MSG_MENU_VOLTAGES
|
||||
//! @endcode
|
||||
//!
|
||||
//!
|
||||
//! If DEBUG_BUILD is defined
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! | Debug | c=18 r=1
|
||||
//! @endcode
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
static void lcd_support_menu()
|
||||
{
|
||||
typedef struct
|
||||
|
@ -1998,8 +2216,8 @@ static void lcd_support_menu()
|
|||
MENU_ITEM_BACK_P(STR_SEPARATOR);
|
||||
if (mmu_enabled)
|
||||
{
|
||||
MENU_ITEM_BACK_P(_i("MMU2 connected"));
|
||||
MENU_ITEM_BACK_P(PSTR(" FW:"));
|
||||
MENU_ITEM_BACK_P(_i("MMU2 connected")); ////c=18 r=1
|
||||
MENU_ITEM_BACK_P(PSTR(" FW:")); ////c=17 r=1
|
||||
if (((menu_item - 1) == menu_line) && lcd_draw_update)
|
||||
{
|
||||
lcd_set_cursor(6, menu_row);
|
||||
|
@ -2016,7 +2234,7 @@ static void lcd_support_menu()
|
|||
// Show the FlashAir IP address, if the card is available.
|
||||
if (_md->is_flash_air) {
|
||||
MENU_ITEM_BACK_P(STR_SEPARATOR);
|
||||
MENU_ITEM_BACK_P(PSTR("FlashAir IP Addr:"));
|
||||
MENU_ITEM_BACK_P(PSTR("FlashAir IP Addr:")); //c=18 r=1
|
||||
///! MENU_ITEM(back_RAM, _md->ip_str, 0);
|
||||
}
|
||||
|
||||
|
@ -2037,7 +2255,7 @@ static void lcd_support_menu()
|
|||
#endif //defined VOLT_BED_PIN || defined VOLT_PWR_PIN
|
||||
|
||||
#ifdef DEBUG_BUILD
|
||||
MENU_ITEM_SUBMENU_P(PSTR("Debug"), lcd_menu_debug);
|
||||
MENU_ITEM_SUBMENU_P(PSTR("Debug"), lcd_menu_debug);////c=18 r=1
|
||||
#endif /* DEBUG_BUILD */
|
||||
|
||||
#endif //MK1BP
|
||||
|
@ -2629,9 +2847,9 @@ if(0)
|
|||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Filament used: |
|
||||
//! |Filament used: | c=18 r=1
|
||||
//! | 00.00m |
|
||||
//! |Print time: |
|
||||
//! |Print time: | c=18 r=1
|
||||
//! | 00h 00m 00s |
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
|
@ -2640,12 +2858,13 @@ if(0)
|
|||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Total filament : |
|
||||
//! |Total filament : | c=18 r=1
|
||||
//! | 000.00 m |
|
||||
//! |Total print time : |
|
||||
//! |Total print time : | c=18 r=1
|
||||
//! | 00d :00h :00 m |
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations. Translations missing for "d"days, "h"ours, "m"inutes", "s"seconds".
|
||||
void lcd_menu_statistics()
|
||||
{
|
||||
if (IS_SD_PRINTING)
|
||||
|
@ -2659,10 +2878,12 @@ void lcd_menu_statistics()
|
|||
lcd_clear();
|
||||
lcd_printf_P(_N(
|
||||
"%S:\n"
|
||||
"%8.2fm\n"
|
||||
"%17.2fm \n"
|
||||
"%S:\n"
|
||||
"%2dh %02dm %02ds"
|
||||
),_i("Filament used"), _met, _i("Print time"), _h, _m, _s);
|
||||
),
|
||||
_i("Filament used"), _met, ////c=18 r=1
|
||||
_i("Print time"), _h, _m, _s); ////c=18 r=1
|
||||
menu_back_if_clicked_fb();
|
||||
}
|
||||
else
|
||||
|
@ -2681,7 +2902,7 @@ void lcd_menu_statistics()
|
|||
lcd_clear();
|
||||
lcd_printf_P(_N(
|
||||
"%S:\n"
|
||||
"%8.2fm\n"
|
||||
"%17.2fm \n"
|
||||
"%S:\n"
|
||||
"%7ldd :%2hhdh :%02hhdm"
|
||||
), _i("Total filament"), _filament_m, _i("Total print time"), _days, _hours, _minutes);
|
||||
|
@ -2769,17 +2990,20 @@ static void lcd_move_e()
|
|||
}
|
||||
|
||||
|
||||
//@brief Show measured Y distance of front calibration points from Y_MIN_POS
|
||||
//If those points are detected too close to edge of reachable area, their confidence is lowered.
|
||||
//This functionality is applied more often for MK2 printers.
|
||||
//! @brief Show measured Y distance of front calibration points from Y_MIN_POS
|
||||
//! If those points are detected too close to edge of reachable area, their confidence is lowered.
|
||||
//! This functionality is applied more often for MK2 printers.
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Y distance from min | c=19 r=1
|
||||
//! | -------------- | STR_SEPARATOR
|
||||
//! |Left: 00.00mm | c=11 r=1
|
||||
//! |Right: 00.00mm | c=11 r=1
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_xyz_y_min()
|
||||
{
|
||||
//|01234567890123456789|
|
||||
//|Y distance from min:|
|
||||
//|--------------------|
|
||||
//|Left: N/A |
|
||||
//|Right: N/A |
|
||||
//----------------------
|
||||
float distanceMin[2];
|
||||
count_xyz_details(distanceMin);
|
||||
lcd_home();
|
||||
|
@ -2789,15 +3013,15 @@ static void lcd_menu_xyz_y_min()
|
|||
"%S:\n"
|
||||
"%S:"
|
||||
),
|
||||
_i("Y distance from min"),
|
||||
_i("Y distance from min"), ////c=19 r=1
|
||||
separator,
|
||||
_i("Left"),
|
||||
_i("Right")
|
||||
_i("Left"), ////c=11 r=1
|
||||
_i("Right") ////c=11 r=1
|
||||
);
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
{
|
||||
lcd_set_cursor(11,2+i);
|
||||
if (distanceMin[i] >= 200) lcd_puts_P(_N("N/A"));
|
||||
if (distanceMin[i] >= 200) lcd_puts_P(_N("N/A")); ////c=3 r=1
|
||||
else lcd_printf_P(_N("%6.2fmm"), distanceMin[i]);
|
||||
}
|
||||
if (lcd_clicked())
|
||||
|
@ -2810,30 +3034,36 @@ float _deg(float rad)
|
|||
return rad * 180 / M_PI;
|
||||
}
|
||||
|
||||
//! @brief Show Measured XYZ Skew
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Measured skew: 0.00D| c=13 r=1
|
||||
//! | -------------- | STR_SEPARATOR
|
||||
//! |Slight skew: 0.12D| c=13 r=1 c=4 r=1
|
||||
//! |Severe skew: 0.25D| c=13 r=1 c=4 r=1
|
||||
//! ----------------------
|
||||
//! D - Degree sysmbol LCD_STR_DEGREE
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_xyz_skew()
|
||||
{
|
||||
//|01234567890123456789|
|
||||
//|Measured skew: N/A |
|
||||
//|--------------------|
|
||||
//|Slight skew: 0.12d|
|
||||
//|Severe skew: 0.25d|
|
||||
//----------------------
|
||||
float angleDiff = eeprom_read_float((float*)(EEPROM_XYZ_CAL_SKEW));
|
||||
lcd_home();
|
||||
lcd_printf_P(_N(
|
||||
"%S:\n"
|
||||
"%S\n"
|
||||
"%S: %5.2f\x01\n"
|
||||
"%S: %5.2f\x01"
|
||||
"%-15.15S%3.2f\x01\n"
|
||||
"%-15.15S%3.2f\x01"
|
||||
),
|
||||
_i("Measured skew"),
|
||||
_i("Measured skew"), ////c=13 r=1
|
||||
separator,
|
||||
_i("Slight skew"), _deg(bed_skew_angle_mild),
|
||||
_i("Severe skew"), _deg(bed_skew_angle_extreme)
|
||||
_i("Slight skew:"), _deg(bed_skew_angle_mild), ////c=13 r=1 c=4 r=1
|
||||
_i("Severe skew:"), _deg(bed_skew_angle_extreme) ////c=13 r=1 c=4 r=1
|
||||
);
|
||||
if (angleDiff < 100){
|
||||
lcd_set_cursor(15,0);
|
||||
lcd_printf_P(_N("%4.2f\x01"), _deg(angleDiff));
|
||||
lcd_printf_P(_N("%3.2f\x01"), _deg(angleDiff));
|
||||
}
|
||||
else{
|
||||
lcd_set_cursor(15,0);
|
||||
|
@ -2842,16 +3072,24 @@ static void lcd_menu_xyz_skew()
|
|||
if (lcd_clicked())
|
||||
menu_goto(lcd_menu_xyz_offset, 0, true, true);
|
||||
}
|
||||
/**
|
||||
* @brief Show measured bed offset from expected position
|
||||
*/
|
||||
//! @brief Show measured bed offset from expected position
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |[0;0] point offset | c=20 r=1
|
||||
//! | -------------- | STR_SEPARATOR
|
||||
//! |X: 000.00mm| c=10 r=1
|
||||
//! |Y: 000.00mm| c=10 r=1
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
//! @todo Positioning of the messages and values on LCD aren't fixed to their exact place. This causes issues with translations.
|
||||
static void lcd_menu_xyz_offset()
|
||||
{
|
||||
lcd_set_cursor(0,0);
|
||||
lcd_puts_P(_i("[0;0] point offset"));////MSG_MEASURED_OFFSET
|
||||
lcd_puts_at_P(0, 1, separator);
|
||||
lcd_puts_at_P(0, 2, PSTR("X"));
|
||||
lcd_puts_at_P(0, 3, PSTR("Y"));
|
||||
lcd_puts_at_P(0, 2, PSTR("X")); ////c=10 r=1
|
||||
lcd_puts_at_P(0, 3, PSTR("Y")); ////c=10 r=1
|
||||
|
||||
float vec_x[2];
|
||||
float vec_y[2];
|
||||
|
@ -2860,9 +3098,9 @@ static void lcd_menu_xyz_offset()
|
|||
|
||||
for (uint_least8_t i = 0; i < 2; i++)
|
||||
{
|
||||
lcd_puts_at_P(11, i + 2, PSTR(""));
|
||||
lcd_set_cursor((cntr[i] < 0) ? 10 : 11, i+2);
|
||||
lcd_print(cntr[i]);
|
||||
lcd_puts_at_P((cntr[i] < 0) ? 17 : 16, i + 2, PSTR("mm"));
|
||||
lcd_puts_at_P(16, i + 2, PSTR("mm"));
|
||||
}
|
||||
menu_back_if_clicked();
|
||||
}
|
||||
|
@ -3010,6 +3248,18 @@ void lcd_adjust_bed_reset(void)
|
|||
_md->status = 0;
|
||||
}
|
||||
|
||||
//! @brief Show Bed level correct
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! |Settings: | MSG_SETTINGS
|
||||
//! |Left side [um]: | MSG_BED_CORRECTION_LEFT
|
||||
//! |Right side[um]: | MSG_BED_CORRECTION_RIGHT
|
||||
//! |Front side[um]: | MSG_BED_CORRECTION_FRONT
|
||||
//! |Rear side [um]: | MSG_BED_CORRECTION_REAR
|
||||
//! |Reset | MSG_BED_CORRECTION_RESET
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
void lcd_adjust_bed(void)
|
||||
{
|
||||
_menu_data_adjust_bed_t* _md = (_menu_data_adjust_bed_t*)&(menu_data[0]);
|
||||
|
@ -3047,6 +3297,16 @@ void lcd_adjust_bed(void)
|
|||
MENU_END();
|
||||
}
|
||||
|
||||
//! @brief Show PID Extruder
|
||||
//!
|
||||
//! @code{.unparsed}
|
||||
//! |01234567890123456789|
|
||||
//! | Set temperature: | MSG_SET_TEMPERATURE
|
||||
//! | |
|
||||
//! | 210 |
|
||||
//! | |
|
||||
//! ----------------------
|
||||
//! @endcode
|
||||
void pid_extruder()
|
||||
{
|
||||
lcd_clear();
|
||||
|
@ -4516,7 +4776,9 @@ void lcd_v2_calibration()
|
|||
{
|
||||
if (mmu_enabled)
|
||||
{
|
||||
const uint8_t filament = choose_menu_P(_i("Select PLA filament:"),_T(MSG_FILAMENT),_i("Cancel")); ////c=20 r=1 ////c=19 r=1
|
||||
const uint8_t filament = choose_menu_P(
|
||||
_i("Select PLA filament:"), ////c=20 r=1
|
||||
_T(MSG_FILAMENT),_i("Cancel")); ////c=19 r=1
|
||||
if (filament < 5)
|
||||
{
|
||||
lcd_commands_step = 20 + filament;
|
||||
|
|
15
README.md
15
README.md
|
@ -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
|
||||
|
|
|
@ -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,51 +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'
|
||||
sed -i 's/\xc3\xbc/ue/g' $LNG'_filtered.po'
|
||||
#replace 'ö' with 'oe'
|
||||
sed -i 's/\xc3\xb6/oe/g' $LNG'_filtered.po'
|
||||
#replace 'Ä' with 'Ae'
|
||||
#replace 'Ä' with 'Ae'
|
||||
sed -i 's/\xc3\x84/Ae/g' $LNG'_filtered.po'
|
||||
#replace 'Ü' with 'Ue'
|
||||
#replace 'ü' with 'ue'
|
||||
sed -i 's/\xc3\xbc/ue/g' $LNG'_filtered.po'
|
||||
#replace 'Ü' with 'Ue'
|
||||
sed -i 's/\xc3\x9c/Ue/g' $LNG'_filtered.po'
|
||||
#replace 'Ö' with 'Oe'
|
||||
#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'
|
||||
#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'
|
||||
|
@ -80,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
|
||||
|
||||
|
|
|
@ -734,7 +734,7 @@
|
|||
"Sort [time]"
|
||||
|
||||
#
|
||||
"Severe skew"
|
||||
"Severe skew:"
|
||||
|
||||
#MSG_SORT_ALPHA c=17 r=1
|
||||
"Sort [alphabet]"
|
||||
|
@ -746,7 +746,7 @@
|
|||
"Sound [loud]"
|
||||
|
||||
#
|
||||
"Slight skew"
|
||||
"Slight skew:"
|
||||
|
||||
#MSG_SOUND_MUTE c=17 r=1
|
||||
"Sound [mute]"
|
||||
|
@ -1061,7 +1061,7 @@
|
|||
"Sheet"
|
||||
|
||||
#
|
||||
"Sound [assist]"
|
||||
"Sound [assist]"
|
||||
|
||||
#
|
||||
"Steel sheets"
|
||||
|
@ -1074,3 +1074,6 @@
|
|||
|
||||
#
|
||||
"Z-probe nr. [3]"
|
||||
|
||||
#
|
||||
"Z-probe nr. [5]"
|
||||
|
|
|
@ -92,7 +92,7 @@
|
|||
|
||||
#MSG_BED_HEATING
|
||||
"Bed Heating"
|
||||
"Zahrivani bed"
|
||||
"Zahrivani bedu"
|
||||
|
||||
#MSG_BED_CORRECTION_MENU
|
||||
"Bed level correct"
|
||||
|
@ -508,7 +508,7 @@
|
|||
|
||||
#
|
||||
"Left"
|
||||
"Vlevo:"
|
||||
"Vlevo"
|
||||
|
||||
#MSG_BED_CORRECTION_LEFT c=14 r=1
|
||||
"Left side [um]"
|
||||
|
@ -688,7 +688,7 @@
|
|||
|
||||
#
|
||||
"Nozzle FAN"
|
||||
"Tryska V."
|
||||
"Vent. trysky"
|
||||
|
||||
#MSG_PAUSE_PRINT
|
||||
"Pause print"
|
||||
|
@ -819,8 +819,8 @@
|
|||
"Predehrev k vyjmuti"
|
||||
|
||||
#MSG_SELFTEST_PRINT_FAN_SPEED c=18
|
||||
"Print fan:"
|
||||
"Tiskovy v:"
|
||||
"Print fan"
|
||||
"Tiskovy vent."
|
||||
|
||||
#MSG_CARD_MENU
|
||||
"Print from SD"
|
||||
|
@ -844,7 +844,7 @@
|
|||
|
||||
#
|
||||
"Print FAN"
|
||||
"Tiskovy v"
|
||||
"Tiskovy vent."
|
||||
|
||||
#MSG_PRUSA3D
|
||||
"prusa3d.com"
|
||||
|
@ -979,8 +979,8 @@
|
|||
"Trideni [cas]"
|
||||
|
||||
#
|
||||
"Severe skew"
|
||||
"Tezke zkoseni"
|
||||
"Severe skew:"
|
||||
"Tezke zkoseni:"
|
||||
|
||||
#MSG_SORT_ALPHA c=17 r=1
|
||||
"Sort [alphabet]"
|
||||
|
@ -995,8 +995,8 @@
|
|||
"Zvuk [hlasity]"
|
||||
|
||||
#
|
||||
"Slight skew"
|
||||
"Lehke zkoseni"
|
||||
"Slight skew:"
|
||||
"Lehke zkoseni:"
|
||||
|
||||
#MSG_SOUND_MUTE c=17 r=1
|
||||
"Sound [mute]"
|
||||
|
@ -1415,8 +1415,8 @@
|
|||
"Plat"
|
||||
|
||||
#
|
||||
"Sound [assist]"
|
||||
"Zvuk [Asist.]"
|
||||
"Sound [assist]"
|
||||
"Zvuk [Asist.]"
|
||||
|
||||
#
|
||||
"Steel sheets"
|
||||
|
@ -1433,3 +1433,7 @@
|
|||
#
|
||||
"Z-probe nr. [3]"
|
||||
"Pocet mereni Z [3]"
|
||||
|
||||
#
|
||||
"Z-probe nr. [5]"
|
||||
"Pocet mereni Z [5]"
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
|
||||
#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..."
|
||||
|
@ -320,7 +320,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"
|
||||
|
@ -556,11 +556,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..."
|
||||
|
@ -828,7 +828,7 @@
|
|||
|
||||
#
|
||||
"Press the knob"
|
||||
"Knopf druecken"
|
||||
"Knopf druecken zum"
|
||||
|
||||
#MSG_PRINT_PAUSED c=20 r=1
|
||||
"Print paused"
|
||||
|
@ -844,7 +844,7 @@
|
|||
|
||||
#
|
||||
"Print FAN"
|
||||
"Druckvent"
|
||||
"Druckvent."
|
||||
|
||||
#MSG_PRUSA3D
|
||||
"prusa3d.com"
|
||||
|
@ -868,7 +868,7 @@
|
|||
|
||||
#MSG_CALIBRATE_BED_RESET
|
||||
"Reset XYZ calibr."
|
||||
"XYZ Kalibr. zuruecksetzen."
|
||||
"Reset XYZ Kalibr."
|
||||
|
||||
#MSG_BED_CORRECTION_RESET
|
||||
"Reset"
|
||||
|
@ -936,7 +936,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."
|
||||
|
@ -979,8 +979,8 @@
|
|||
"Sort. [Zeit]"
|
||||
|
||||
#
|
||||
"Severe skew"
|
||||
"Schwer.Schr"
|
||||
"Severe skew:"
|
||||
"Schwer.Schr:"
|
||||
|
||||
#MSG_SORT_ALPHA c=17 r=1
|
||||
"Sort [alphabet]"
|
||||
|
@ -995,8 +995,8 @@
|
|||
"Sound [laut]"
|
||||
|
||||
#
|
||||
"Slight skew"
|
||||
"Leicht.Schr"
|
||||
"Slight skew:"
|
||||
"Leicht.Schr:"
|
||||
|
||||
#MSG_SOUND_MUTE c=17 r=1
|
||||
"Sound [mute]"
|
||||
|
@ -1104,11 +1104,11 @@
|
|||
|
||||
#
|
||||
"to load filament"
|
||||
"zum Filament laden"
|
||||
"Filament laden"
|
||||
|
||||
#
|
||||
"to unload filament"
|
||||
"zum Filament entladen"
|
||||
"Filament entladen"
|
||||
|
||||
#MSG_UNLOAD_FILAMENT c=17
|
||||
"Unload filament"
|
||||
|
@ -1249,7 +1249,7 @@
|
|||
|
||||
#
|
||||
"Checks"
|
||||
"\x00"
|
||||
"Kontrolle"
|
||||
|
||||
#
|
||||
"False triggering"
|
||||
|
@ -1265,11 +1265,11 @@
|
|||
|
||||
#
|
||||
"Firmware [strict]"
|
||||
"Firmware [streng]"
|
||||
"Firmware [strikt]"
|
||||
|
||||
#
|
||||
"Firmware [warn]"
|
||||
"\x00"
|
||||
"Firmware [warnen]"
|
||||
|
||||
#
|
||||
"HW Setup"
|
||||
|
@ -1293,15 +1293,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"
|
||||
|
@ -1325,11 +1325,11 @@
|
|||
|
||||
#
|
||||
"Model [strict]"
|
||||
"Modell [streng]"
|
||||
"Modell [strikt]"
|
||||
|
||||
#
|
||||
"Model [warn]"
|
||||
"Modell [warn]"
|
||||
"Modell [warnen]"
|
||||
|
||||
#
|
||||
"Nozzle d. [0.25]"
|
||||
|
@ -1349,11 +1349,11 @@
|
|||
|
||||
#
|
||||
"Nozzle [strict]"
|
||||
"Duese [streng]"
|
||||
"Duese [strikt]"
|
||||
|
||||
#
|
||||
"Nozzle [warn]"
|
||||
"Duese [warn]"
|
||||
"Duese [warnen]"
|
||||
|
||||
#
|
||||
"G-code sliced for a different level. Continue?"
|
||||
|
@ -1416,8 +1416,8 @@
|
|||
"Blech"
|
||||
|
||||
#
|
||||
"Sound [assist]"
|
||||
"Sound [Assist]"
|
||||
"Sound [assist]"
|
||||
"Sound [Assist]"
|
||||
|
||||
#
|
||||
"Steel sheets"
|
||||
|
@ -1434,3 +1434,7 @@
|
|||
#
|
||||
"Z-probe nr. [3]"
|
||||
"Z-Probe Nr. [3]"
|
||||
|
||||
#
|
||||
"Z-probe nr. [5]"
|
||||
"Z-Probe Nr. [5]"
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
#MSG_BABYSTEPPING_Z c=15
|
||||
"Adjusting Z:"
|
||||
"Ajustando Z:"
|
||||
"Ajustar-Z:"
|
||||
|
||||
#MSG_SELFTEST_CHECK_ALLCORRECT c=20
|
||||
"All correct "
|
||||
|
@ -216,7 +216,7 @@
|
|||
|
||||
#MSG_EXTRUDER_CORRECTION c=10
|
||||
"E-correct:"
|
||||
"Correccion-E:"
|
||||
"Corregir-E:"
|
||||
|
||||
#MSG_EJECT_FILAMENT c=17 r=1
|
||||
"Eject filament"
|
||||
|
@ -976,11 +976,11 @@
|
|||
|
||||
#MSG_SORT_TIME c=17 r=1
|
||||
"Sort [time]"
|
||||
"Ordenar [tiempo]"
|
||||
"Ordenar [fecha]"
|
||||
|
||||
#
|
||||
"Severe skew"
|
||||
"Incl.severa"
|
||||
"Severe skew:"
|
||||
"Incl.severa:"
|
||||
|
||||
#MSG_SORT_ALPHA c=17 r=1
|
||||
"Sort [alphabet]"
|
||||
|
@ -995,8 +995,8 @@
|
|||
"Sonido [alto]"
|
||||
|
||||
#
|
||||
"Slight skew"
|
||||
"Liger.incl."
|
||||
"Slight skew:"
|
||||
"Liger.incl.:"
|
||||
|
||||
#MSG_SOUND_MUTE c=17 r=1
|
||||
"Sound [mute]"
|
||||
|
@ -1200,7 +1200,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!"
|
||||
|
@ -1236,11 +1236,11 @@
|
|||
|
||||
#
|
||||
"Y-correct:"
|
||||
"Correccion-Y:"
|
||||
"Corregir-Y:"
|
||||
|
||||
#MSG_OFF
|
||||
" [off]"
|
||||
" [apagado]"
|
||||
"[apag]"
|
||||
|
||||
#
|
||||
"Back"
|
||||
|
@ -1415,8 +1415,8 @@
|
|||
"Lamina"
|
||||
|
||||
#
|
||||
"Sound [assist]"
|
||||
"Sonido [asistido]"
|
||||
"Sound [assist]"
|
||||
"Sonido [asistido]"
|
||||
|
||||
#
|
||||
"Steel sheets"
|
||||
|
@ -1424,7 +1424,7 @@
|
|||
|
||||
#
|
||||
"Z-correct:"
|
||||
"Correccion-Z:"
|
||||
"Corregir-Z:"
|
||||
|
||||
#
|
||||
"Z-probe nr. [1]"
|
||||
|
@ -1433,3 +1433,7 @@
|
|||
#
|
||||
"Z-probe nr. [3]"
|
||||
"Z-sensor nr. [3]"
|
||||
|
||||
#
|
||||
"Z-probe nr. [5]"
|
||||
"Z-sensor nr. [5]"
|
||||
|
|
|
@ -16,7 +16,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 +24,7 @@
|
|||
|
||||
#MSG_BABYSTEPPING_Z c=15
|
||||
"Adjusting Z:"
|
||||
"Ajuster Z :"
|
||||
"Ajuster Z:"
|
||||
|
||||
#MSG_SELFTEST_CHECK_ALLCORRECT c=20
|
||||
"All correct "
|
||||
|
@ -32,7 +32,7 @@
|
|||
|
||||
#MSG_WIZARD_DONE c=20 r=8
|
||||
"All is done. Happy printing!"
|
||||
"Tout est pret. Bonne impression !"
|
||||
"Tout est pret. Bonne impression!"
|
||||
|
||||
#
|
||||
"Ambient"
|
||||
|
@ -62,9 +62,9 @@
|
|||
"Auto home"
|
||||
"Mise a 0 des axes"
|
||||
|
||||
#MSG_AUTOLOAD_FILAMENT c=17
|
||||
#MSG_AUTOLOAD_FILAMENT c=18
|
||||
"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..."
|
||||
|
@ -72,7 +72,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"
|
||||
|
@ -100,7 +100,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"
|
||||
|
@ -112,7 +112,7 @@
|
|||
|
||||
#MSG_RECOVER_PRINT c=20 r=2
|
||||
"Blackout occurred. Recover print?"
|
||||
"Coupure detectee. Recup. impression ?"
|
||||
"Coupure detectee. Reprendre impression?"
|
||||
|
||||
#
|
||||
"Calibrating home"
|
||||
|
@ -132,15 +132,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"
|
||||
|
@ -168,7 +168,7 @@
|
|||
|
||||
#
|
||||
"Copy selected language?"
|
||||
"Copier la langue selectionne ?"
|
||||
"Copier la langue selectionne?"
|
||||
|
||||
#MSG_CRASHDETECT_ON
|
||||
"Crash det. [on]"
|
||||
|
@ -188,7 +188,7 @@
|
|||
|
||||
#
|
||||
"Crash detected. Resume print?"
|
||||
"Crash detecte. Poursuivre l'impression ?"
|
||||
"Crash detecte. Poursuivre l'impression?"
|
||||
|
||||
#
|
||||
"Crash"
|
||||
|
@ -200,7 +200,7 @@
|
|||
|
||||
#MSG_DATE c=17 r=1
|
||||
"Date:"
|
||||
"Date :"
|
||||
"Date:"
|
||||
|
||||
#MSG_DISABLE_STEPPERS
|
||||
"Disable steppers"
|
||||
|
@ -212,7 +212,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:"
|
||||
|
@ -220,15 +220,15 @@
|
|||
|
||||
#MSG_EJECT_FILAMENT c=17 r=1
|
||||
"Eject filament"
|
||||
"Ejecter le fil."
|
||||
"Remonter le fil."
|
||||
|
||||
#
|
||||
"Eject"
|
||||
"Ejecter"
|
||||
"Remonter"
|
||||
|
||||
#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"
|
||||
|
@ -248,11 +248,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:"
|
||||
|
@ -268,23 +268,23 @@
|
|||
|
||||
#
|
||||
"Fail stats MMU"
|
||||
"Stat. echecs MMU"
|
||||
"Stat. d'echec MMU"
|
||||
|
||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
||||
"F. autoload [on]"
|
||||
"ChargAuto f. [on]"
|
||||
"Autochargeur [on]"
|
||||
|
||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
||||
"F. autoload [N/A]"
|
||||
"AutoCharg F [N/A]"
|
||||
"Autochargeur[N/A]"
|
||||
|
||||
#MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
||||
"F. autoload [off]"
|
||||
"AutoCharg F [off]"
|
||||
"Autochargeur[off]"
|
||||
|
||||
#
|
||||
"Fail stats"
|
||||
"Statist. d'echec"
|
||||
"Stat. d'echec"
|
||||
|
||||
#MSG_FAN_SPEED c=14
|
||||
"Fan speed"
|
||||
|
@ -292,15 +292,15 @@
|
|||
|
||||
#MSG_SELFTEST_FAN c=20
|
||||
"Fan test"
|
||||
"Test ventilateur"
|
||||
"Test du ventilateur"
|
||||
|
||||
#MSG_FANS_CHECK_ON c=17 r=1
|
||||
"Fans check [on]"
|
||||
"Verif ventilo[on]"
|
||||
"Verif vent. [on]"
|
||||
|
||||
#MSG_FANS_CHECK_OFF c=17 r=1
|
||||
"Fans check [off]"
|
||||
"Verif venti [off]"
|
||||
"Verif vent. [off]"
|
||||
|
||||
#MSG_FSENSOR_ON
|
||||
"Fil. sensor [on]"
|
||||
|
@ -308,7 +308,7 @@
|
|||
|
||||
#MSG_FSENSOR_NA
|
||||
"Fil. sensor [N/A]"
|
||||
"Capteur Fil. [N/A]"
|
||||
"Capteur Fil.[N/A]"
|
||||
|
||||
#MSG_FSENSOR_OFF
|
||||
"Fil. sensor [off]"
|
||||
|
@ -320,7 +320,7 @@
|
|||
|
||||
#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"
|
||||
|
@ -340,11 +340,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."
|
||||
|
@ -352,11 +352,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"
|
||||
|
@ -368,7 +368,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]"
|
||||
|
@ -384,7 +384,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."
|
||||
|
@ -396,7 +396,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"
|
||||
|
@ -420,11 +420,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 "
|
||||
|
@ -444,11 +444,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"
|
||||
|
@ -456,11 +456,11 @@
|
|||
|
||||
#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."
|
||||
"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."
|
||||
|
@ -472,7 +472,7 @@
|
|||
|
||||
#
|
||||
"Is filament 1 loaded?"
|
||||
"Le filament 1 est-il charge ?"
|
||||
"Fil.1 est-il charge?"
|
||||
|
||||
#MSG_INSERT_FILAMENT c=20
|
||||
"Insert filament"
|
||||
|
@ -480,27 +480,27 @@
|
|||
|
||||
#MSG_WIZARD_FILAMENT_LOADED c=20 r=2
|
||||
"Is filament loaded?"
|
||||
"Le filament est-il charge ?"
|
||||
"Fil. est-il charge?"
|
||||
|
||||
#MSG_WIZARD_PLA_FILAMENT c=20 r=2
|
||||
"Is it PLA filament?"
|
||||
"Est-ce du filament PLA ?"
|
||||
"Est-ce du filament PLA?"
|
||||
|
||||
#MSG_PLA_FILAMENT_LOADED c=20 r=2
|
||||
"Is PLA filament loaded?"
|
||||
"Le filament PLA est-il charge ?"
|
||||
"Fil. PLA 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."
|
||||
|
||||
#
|
||||
"Last print"
|
||||
"Derniere impression"
|
||||
"Derniere impres."
|
||||
|
||||
#MSG_SELFTEST_EXTRUDER_FAN c=20
|
||||
"Left hotend fan?"
|
||||
|
@ -520,7 +520,7 @@
|
|||
|
||||
#MSG_BABYSTEP_Z
|
||||
"Live adjust Z"
|
||||
"Ajuster Z en direct"
|
||||
"Ajuster Z en dir."
|
||||
|
||||
#MSG_LOAD_FILAMENT c=17
|
||||
"Load filament"
|
||||
|
@ -528,11 +528,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"
|
||||
|
@ -540,7 +540,7 @@
|
|||
|
||||
#
|
||||
"Load to nozzle"
|
||||
"Charger dans la buse"
|
||||
"Charger la buse"
|
||||
|
||||
#MSG_M117_V2_CALIBRATION c=25 r=1
|
||||
"M117 First layer cal."
|
||||
|
@ -548,7 +548,7 @@
|
|||
|
||||
#MSG_MAIN
|
||||
"Main"
|
||||
"Principal"
|
||||
"Menu principal"
|
||||
|
||||
#MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=60
|
||||
"Measuring reference height of calibration point"
|
||||
|
@ -564,15 +564,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 "
|
||||
|
@ -592,7 +592,7 @@
|
|||
|
||||
#MSG_SILENT_MODE_ON
|
||||
"Mode [silent]"
|
||||
"Mode [silencieux]"
|
||||
"Mode [feutre]"
|
||||
|
||||
#
|
||||
"MMU needs user attention."
|
||||
|
@ -604,7 +604,7 @@
|
|||
|
||||
#MSG_STEALTH_MODE_ON
|
||||
"Mode [Stealth]"
|
||||
"Mode [Furtif]"
|
||||
"Mode [furtif]"
|
||||
|
||||
#MSG_AUTO_MODE_ON
|
||||
"Mode [auto power]"
|
||||
|
@ -684,7 +684,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"
|
||||
|
@ -716,7 +716,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."
|
||||
|
@ -724,11 +724,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."
|
||||
"Merci de consulter 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."
|
||||
|
@ -744,7 +744,7 @@
|
|||
|
||||
#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"
|
||||
|
@ -752,7 +752,7 @@
|
|||
|
||||
#
|
||||
"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."
|
||||
"Inserez du PLA dans le 1er tube du MMU, appuyez sur le bouton pour le charger."
|
||||
|
||||
#MSG_PULL_OUT_FILAMENT c=20 r=4
|
||||
"Please pull out filament immediately"
|
||||
|
@ -764,7 +764,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."
|
||||
|
@ -780,7 +780,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!"
|
||||
|
@ -810,21 +810,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"
|
||||
|
@ -836,7 +836,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."
|
||||
|
@ -844,7 +844,7 @@
|
|||
|
||||
#
|
||||
"Print FAN"
|
||||
"Vent.impr"
|
||||
"Vent. impr"
|
||||
|
||||
#MSG_PRUSA3D
|
||||
"prusa3d.com"
|
||||
|
@ -868,7 +868,7 @@
|
|||
|
||||
#MSG_CALIBRATE_BED_RESET
|
||||
"Reset XYZ calibr."
|
||||
"Reinit.calibr. XYZ"
|
||||
"Reinit. calib. XYZ"
|
||||
|
||||
#MSG_BED_CORRECTION_RESET
|
||||
"Reset"
|
||||
|
@ -896,7 +896,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_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
||||
"SD card [normal]"
|
||||
|
@ -904,7 +904,7 @@
|
|||
|
||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
||||
"SD card [flshAir]"
|
||||
"CarteSD[flashAir]"
|
||||
"CarteSD [flshAir]"
|
||||
|
||||
#
|
||||
"Right"
|
||||
|
@ -932,7 +932,7 @@
|
|||
|
||||
#MSG_SELFTEST_ERROR
|
||||
"Selftest error !"
|
||||
"Erreur auto-test !"
|
||||
"Erreur auto-test!"
|
||||
|
||||
#MSG_SELFTEST_FAILED c=20
|
||||
"Selftest failed "
|
||||
|
@ -948,11 +948,11 @@
|
|||
|
||||
#
|
||||
"Select PLA filament:"
|
||||
"Selectionnez le filament PLA :"
|
||||
"Selectionnez le fil. PLA:"
|
||||
|
||||
#MSG_SET_TEMPERATURE c=19 r=1
|
||||
"Set temperature:"
|
||||
"Regler temp. :"
|
||||
"Regler temp.:"
|
||||
|
||||
#MSG_SETTINGS
|
||||
"Settings"
|
||||
|
@ -979,8 +979,8 @@
|
|||
"Tri [heure]"
|
||||
|
||||
#
|
||||
"Severe skew"
|
||||
"Deviat.sev."
|
||||
"Severe skew:"
|
||||
"Deviat.sev.:"
|
||||
|
||||
#MSG_SORT_ALPHA c=17 r=1
|
||||
"Sort [alphabet]"
|
||||
|
@ -995,8 +995,8 @@
|
|||
"Son [fort]"
|
||||
|
||||
#
|
||||
"Slight skew"
|
||||
"Deviat.leg."
|
||||
"Slight skew:"
|
||||
"Deviat.leg.:"
|
||||
|
||||
#MSG_SOUND_MUTE c=17 r=1
|
||||
"Sound [mute]"
|
||||
|
@ -1004,7 +1004,7 @@
|
|||
|
||||
#
|
||||
"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 c=17 r=1
|
||||
"Sound [once]"
|
||||
|
@ -1012,7 +1012,7 @@
|
|||
|
||||
#MSG_SOUND_SILENT c=17 r=1
|
||||
"Sound [silent]"
|
||||
"Son [silencieux]"
|
||||
"Son [feutre]"
|
||||
|
||||
#MSG_SPEED
|
||||
"Speed"
|
||||
|
@ -1080,7 +1080,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"
|
||||
|
@ -1148,23 +1148,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"
|
||||
|
@ -1188,7 +1188,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."
|
||||
|
@ -1196,7 +1196,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:"
|
||||
|
@ -1204,11 +1204,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."
|
||||
|
@ -1216,7 +1216,7 @@
|
|||
|
||||
#MSG_LOAD_ALL c=17
|
||||
"Load all"
|
||||
"Tout charger"
|
||||
"Charger un par un"
|
||||
|
||||
#
|
||||
"XYZ calibration failed. Bed calibration point was not found."
|
||||
|
@ -1224,7 +1224,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."
|
||||
|
@ -1280,15 +1280,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]"
|
||||
|
||||
#
|
||||
"Mesh [3x3]"
|
||||
|
@ -1308,11 +1308,11 @@
|
|||
|
||||
#
|
||||
"MMU Mode [Normal]"
|
||||
"Mode MMU [Normal]"
|
||||
"Mode MMU [normal]"
|
||||
|
||||
#
|
||||
"MMU Mode[Stealth]"
|
||||
"Mode MMU [Furtif]"
|
||||
"Mode MMU [feutre]"
|
||||
|
||||
#
|
||||
"Mode change in progress ..."
|
||||
|
@ -1368,7 +1368,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?"
|
||||
|
@ -1376,27 +1376,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"
|
||||
|
@ -1412,11 +1412,11 @@
|
|||
|
||||
#
|
||||
"Sheet"
|
||||
"Feuille"
|
||||
"Plaque"
|
||||
|
||||
#
|
||||
"Sound [assist]"
|
||||
"Son [Assist]"
|
||||
"Sound [assist]"
|
||||
"Son [assist]"
|
||||
|
||||
#
|
||||
"Steel sheets"
|
||||
|
@ -1428,8 +1428,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]"
|
||||
|
||||
|
|
|
@ -72,7 +72,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"
|
||||
|
@ -108,7 +108,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?"
|
||||
|
@ -172,15 +172,15 @@
|
|||
|
||||
#MSG_CRASHDETECT_ON
|
||||
"Crash det. [on]"
|
||||
"Rilevam.imp. [on]"
|
||||
"Rileva.crash [on]"
|
||||
|
||||
#MSG_CRASHDETECT_NA
|
||||
"Crash det. [N/A]"
|
||||
"Rilevam.imp.[N/A]"
|
||||
"Rileva.crash[N/A]"
|
||||
|
||||
#MSG_CRASHDETECT_OFF
|
||||
"Crash det. [off]"
|
||||
"Rilevam.imp.[off]"
|
||||
"Rileva.crash[off]"
|
||||
|
||||
#MSG_CRASH_DETECTED c=20 r=1
|
||||
"Crash detected."
|
||||
|
@ -272,7 +272,7 @@
|
|||
|
||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
||||
"F. autoload [on]"
|
||||
"Autocar.filam[on]"
|
||||
"Autocar.fil. [on]"
|
||||
|
||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
||||
"F. autoload [N/A]"
|
||||
|
@ -304,15 +304,15 @@
|
|||
|
||||
#MSG_FSENSOR_ON
|
||||
"Fil. sensor [on]"
|
||||
"Sensor filam.[on]"
|
||||
"Sensore fil. [on]"
|
||||
|
||||
#MSG_FSENSOR_NA
|
||||
"Fil. sensor [N/A]"
|
||||
"Sensor filam[N/A]"
|
||||
"Sensore fil.[N/A]"
|
||||
|
||||
#MSG_FSENSOR_OFF
|
||||
"Fil. sensor [off]"
|
||||
"Sensor filam[off]"
|
||||
"Sensore fil.[off]"
|
||||
|
||||
#
|
||||
"Filam. runouts"
|
||||
|
@ -348,7 +348,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."
|
||||
|
@ -516,7 +516,7 @@
|
|||
|
||||
#
|
||||
"Lin. correction"
|
||||
"Correzione lin."
|
||||
"Correzione lineare"
|
||||
|
||||
#MSG_BABYSTEP_Z
|
||||
"Live adjust Z"
|
||||
|
@ -556,7 +556,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..."
|
||||
|
@ -588,11 +588,11 @@
|
|||
|
||||
#MSG_STEALTH_MODE_OFF
|
||||
"Mode [Normal]"
|
||||
"Modo [normale]"
|
||||
"Mod. [normale]"
|
||||
|
||||
#MSG_SILENT_MODE_ON
|
||||
"Mode [silent]"
|
||||
"Modo [silenzioso]"
|
||||
"Mod. [silenziosa]"
|
||||
|
||||
#
|
||||
"MMU needs user attention."
|
||||
|
@ -604,15 +604,15 @@
|
|||
|
||||
#MSG_STEALTH_MODE_ON
|
||||
"Mode [Stealth]"
|
||||
"Modo [Silenziosa]"
|
||||
"Mod. [silenziosa]"
|
||||
|
||||
#MSG_AUTO_MODE_ON
|
||||
"Mode [auto power]"
|
||||
"Modo [auto]"
|
||||
"Mod. [auto]"
|
||||
|
||||
#MSG_SILENT_MODE_OFF
|
||||
"Mode [high power]"
|
||||
"Mode [forte]"
|
||||
"Mod. [forte]"
|
||||
|
||||
#
|
||||
"MMU2 connected"
|
||||
|
@ -976,11 +976,11 @@
|
|||
|
||||
#MSG_SORT_TIME c=17 r=1
|
||||
"Sort [time]"
|
||||
"Ordina [tempo]"
|
||||
"Ordina [cron.]"
|
||||
|
||||
#
|
||||
"Severe skew"
|
||||
"Devia.grave"
|
||||
"Severe skew:"
|
||||
"Devia.grave:"
|
||||
|
||||
#MSG_SORT_ALPHA c=17 r=1
|
||||
"Sort [alphabet]"
|
||||
|
@ -995,8 +995,8 @@
|
|||
"Suono [forte]"
|
||||
|
||||
#
|
||||
"Slight skew"
|
||||
"Devia.lieve"
|
||||
"Slight skew:"
|
||||
"Devia.lieve:"
|
||||
|
||||
#MSG_SOUND_MUTE c=17 r=1
|
||||
"Sound [mute]"
|
||||
|
@ -1415,8 +1415,8 @@
|
|||
"Piano"
|
||||
|
||||
#
|
||||
"Sound [assist]"
|
||||
"Suono [assistito]"
|
||||
"Sound [assist]"
|
||||
"Suono [assist.]"
|
||||
|
||||
#
|
||||
"Steel sheets"
|
||||
|
@ -1433,3 +1433,7 @@
|
|||
#
|
||||
"Z-probe nr. [3]"
|
||||
"Z-probe nr. [3]"
|
||||
|
||||
#
|
||||
"Z-probe nr. [5]"
|
||||
"Z-probe nr. [5]"
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
#
|
||||
"SpoolJoin [N/A]"
|
||||
"SpoolJoin [nd]"
|
||||
"SpoolJoin [N/D]"
|
||||
|
||||
#MSG_AUTO_DEPLETE_OFF c=17 r=1
|
||||
"SpoolJoin [off]"
|
||||
|
@ -64,7 +64,7 @@
|
|||
|
||||
#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..."
|
||||
|
@ -96,7 +96,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."
|
||||
|
@ -176,7 +176,7 @@
|
|||
|
||||
#MSG_CRASHDETECT_NA
|
||||
"Crash det. [N/A]"
|
||||
"Wykr.zderzen[n/d]"
|
||||
"Wykr.zderzen[N/D]"
|
||||
|
||||
#MSG_CRASHDETECT_OFF
|
||||
"Crash det. [off]"
|
||||
|
@ -204,7 +204,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."
|
||||
|
@ -256,11 +256,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"
|
||||
|
@ -272,7 +272,7 @@
|
|||
|
||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
||||
"F. autoload [on]"
|
||||
"Autolad. fil [wl]"
|
||||
"Autolad.fil. [wl]"
|
||||
|
||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
||||
"F. autoload [N/A]"
|
||||
|
@ -320,7 +320,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"
|
||||
|
@ -516,7 +516,7 @@
|
|||
|
||||
#
|
||||
"Lin. correction"
|
||||
"Korekcja lin."
|
||||
"Korekcja liniowa"
|
||||
|
||||
#MSG_BABYSTEP_Z
|
||||
"Live adjust Z"
|
||||
|
@ -604,7 +604,7 @@
|
|||
|
||||
#MSG_STEALTH_MODE_ON
|
||||
"Mode [Stealth]"
|
||||
"Tryb [Stealth]"
|
||||
"Tryb [cichy]"
|
||||
|
||||
#MSG_AUTO_MODE_ON
|
||||
"Mode [auto power]"
|
||||
|
@ -688,7 +688,7 @@
|
|||
|
||||
#
|
||||
"Nozzle FAN"
|
||||
"Went. Hotend"
|
||||
"WentHotend"
|
||||
|
||||
#MSG_PAUSE_PRINT
|
||||
"Pause print"
|
||||
|
@ -720,7 +720,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 :"
|
||||
|
@ -820,7 +820,7 @@
|
|||
|
||||
#MSG_SELFTEST_PRINT_FAN_SPEED c=18
|
||||
"Print fan:"
|
||||
"Went.wydr:"
|
||||
"WentWydruk:"
|
||||
|
||||
#MSG_CARD_MENU
|
||||
"Print from SD"
|
||||
|
@ -840,11 +840,11 @@
|
|||
|
||||
#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"
|
||||
|
||||
#MSG_PRUSA3D
|
||||
"prusa3d.com"
|
||||
|
@ -924,7 +924,7 @@
|
|||
|
||||
#MSG_SELFTEST_START c=20
|
||||
"Self test start "
|
||||
"Rozpoczynanie Selftestu"
|
||||
"Selftest startuje"
|
||||
|
||||
#MSG_SELFTEST
|
||||
"Selftest "
|
||||
|
@ -932,7 +932,7 @@
|
|||
|
||||
#MSG_SELFTEST_ERROR
|
||||
"Selftest error !"
|
||||
"Blad selftest !"
|
||||
"Blad selftest!"
|
||||
|
||||
#MSG_SELFTEST_FAILED c=20
|
||||
"Selftest failed "
|
||||
|
@ -952,7 +952,7 @@
|
|||
|
||||
#MSG_SET_TEMPERATURE c=19 r=1
|
||||
"Set temperature:"
|
||||
"Ustaw. temperatury:"
|
||||
"Ustaw temperature:"
|
||||
|
||||
#MSG_SETTINGS
|
||||
"Settings"
|
||||
|
@ -979,12 +979,12 @@
|
|||
"Sortowanie [czas]"
|
||||
|
||||
#
|
||||
"Severe skew"
|
||||
"ZnacznySkos"
|
||||
"Severe skew:"
|
||||
"Znaczny skos:"
|
||||
|
||||
#MSG_SORT_ALPHA c=17 r=1
|
||||
"Sort [alphabet]"
|
||||
"Sortowan[alfabet]"
|
||||
"Sortowanie[alfab]"
|
||||
|
||||
#MSG_SORTING c=20 r=1
|
||||
"Sorting files"
|
||||
|
@ -992,19 +992,19 @@
|
|||
|
||||
#MSG_SOUND_LOUD c=17 r=1
|
||||
"Sound [loud]"
|
||||
"Dzwiek [Glosny]"
|
||||
"Dzwiek [glosny]"
|
||||
|
||||
#
|
||||
"Slight skew"
|
||||
"Lekki skos"
|
||||
"Slight skew:"
|
||||
"Lekki skos:"
|
||||
|
||||
#MSG_SOUND_MUTE c=17 r=1
|
||||
"Sound [mute]"
|
||||
"Dzwiek[Wylaczony]"
|
||||
"Dzwiek[wylaczony]"
|
||||
|
||||
#
|
||||
"Some problem encountered, Z-leveling enforced ..."
|
||||
"Wykryto problem, wymuszono poziomowanie osi Z ..."
|
||||
"Wykryto problem, wymuszono poziomowanie osi Z."
|
||||
|
||||
#MSG_SOUND_ONCE c=17 r=1
|
||||
"Sound [once]"
|
||||
|
@ -1012,7 +1012,7 @@
|
|||
|
||||
#MSG_SOUND_SILENT c=17 r=1
|
||||
"Sound [silent]"
|
||||
"Dzwiek [Cichy]"
|
||||
"Dzwiek [cichy]"
|
||||
|
||||
#MSG_SPEED
|
||||
"Speed"
|
||||
|
@ -1084,11 +1084,11 @@
|
|||
|
||||
#
|
||||
"Total filament"
|
||||
"Calkowita dlugosc filamentu"
|
||||
"Zuzycie filamentu"
|
||||
|
||||
#
|
||||
"Total print time"
|
||||
"Calkowity czas druku"
|
||||
"Laczny czas druku"
|
||||
|
||||
#MSG_TUNE
|
||||
"Tune"
|
||||
|
@ -1280,7 +1280,7 @@
|
|||
|
||||
#
|
||||
"Magnets comp.[N/A]"
|
||||
"Kor. magnesow [nd]"
|
||||
"Kor. magnesow[N/D]"
|
||||
|
||||
#
|
||||
"Magnets comp.[Off]"
|
||||
|
@ -1300,7 +1300,7 @@
|
|||
|
||||
#
|
||||
"Mesh bed leveling"
|
||||
"Poziomowanie wg siatki"
|
||||
"Poziomowanie stolu"
|
||||
|
||||
#
|
||||
"MK3S firmware detected on MK3 printer"
|
||||
|
@ -1413,10 +1413,9 @@
|
|||
#
|
||||
"Sheet"
|
||||
"Plyta"
|
||||
|
||||
#
|
||||
"Sound [assist]"
|
||||
"Dzwiek [asyst.]"
|
||||
"Sound [assist]"
|
||||
"Dzwiek [asyst.]"
|
||||
|
||||
#
|
||||
"Steel sheets"
|
||||
|
@ -1428,8 +1427,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]"
|
||||
|
|
252
lang/translations.md
Normal file
252
lang/translations.md
Normal 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
|
Loading…
Reference in a new issue