Browse Source

LULZBOT_TOUCH_UI: Localization, runtime language selection (#15249)

Marcio Teixeira 4 years ago
parent
commit
18821f29d5
100 changed files with 1586 additions and 538 deletions
  1. 3
    3
      Marlin/Makefile
  2. 7
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/config.h
  3. 1
    1
      Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/basic/commands.cpp
  4. 1
    1
      Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/basic/commands.h
  5. 47
    9
      Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/command_processor.h
  6. 55
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.cpp
  7. 46
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h
  8. 84
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h
  9. 410
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h
  10. 90
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h
  11. 26
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/language/languages.h
  12. 17
    6
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/about_screen.cpp
  13. 32
    32
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/advanced_settings_menu.cpp
  14. 9
    9
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/backlash_compensation_screen.cpp
  15. 28
    28
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/base_numeric_adjustment_screen.cpp
  16. 15
    15
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_advanced_settings.cpp
  17. 1
    1
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_e.cpp
  18. 1
    1
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_xyz.cpp
  19. 8
    8
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_main_menu.cpp
  20. 8
    12
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_status_screen.cpp
  21. 14
    21
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_tune_menu.cpp
  22. 5
    1
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp
  23. 44
    36
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/change_filament_screen.cpp
  24. 1
    1
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_abort_print_dialog_box.cpp
  25. 1
    1
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_auto_calibration_dialog_box.cpp
  26. 3
    3
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_erase_flash_dialog_box.cpp
  27. 6
    6
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/default_acceleration_screen.cpp
  28. 4
    4
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/dialog_box_base_class.cpp
  29. 6
    6
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/display_tuning_screen.cpp
  30. 23
    23
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp
  31. 3
    3
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/feedrate_percent_screen.cpp
  32. 8
    8
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_menu.cpp
  33. 5
    5
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_runout_screen.cpp
  34. 4
    4
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/files_screen.cpp
  35. 13
    13
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_settings_screen.cpp
  36. 8
    8
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_sounds_screen.cpp
  37. 6
    6
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/jerk_screen.cpp
  38. 2
    2
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/junction_deviation_screen.cpp
  39. 2
    2
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp
  40. 56
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/language_menu.cpp
  41. 6
    6
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/linear_advance_screen.cpp
  42. 4
    4
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/lock_screen.cpp
  43. 20
    20
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/main_menu.cpp
  44. 10
    10
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp
  45. 10
    10
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_velocity_screen.cpp
  46. 10
    10
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/move_axis_screen.cpp
  47. 6
    6
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nozzle_offsets_screen.cpp
  48. 15
    14
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nudge_nozzle_screen.cpp
  49. 3
    3
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/restore_failsafe_dialog_box.cpp
  50. 2
    2
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/save_settings_dialog_box.cpp
  51. 3
    0
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.cpp
  52. 21
    11
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h
  53. 1
    1
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/spinner_dialog_box.cpp
  54. 7
    7
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/statistics_screen.cpp
  55. 39
    55
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/status_screen.cpp
  56. 4
    4
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/stepper_bump_sensitivity_screen.cpp
  57. 10
    10
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/stepper_current_screen.cpp
  58. 10
    10
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/steps_screen.cpp
  59. 13
    20
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/temperature_screen.cpp
  60. 7
    33
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_calibration_screen.cpp
  61. 20
    20
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/tune_menu.cpp
  62. 3
    3
      Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/z_offset_screen.cpp
  63. 7
    0
      config/default/Configuration_adv.h
  64. 7
    0
      config/examples/3DFabXYZ/Migbot/Configuration_adv.h
  65. 7
    0
      config/examples/ADIMLab/Gantry v1/Configuration_adv.h
  66. 7
    0
      config/examples/ADIMLab/Gantry v2/Configuration_adv.h
  67. 7
    0
      config/examples/AlephObjects/TAZ4/Configuration_adv.h
  68. 7
    0
      config/examples/Alfawise/U20-bltouch/Configuration_adv.h
  69. 7
    0
      config/examples/Alfawise/U20/Configuration_adv.h
  70. 7
    0
      config/examples/AliExpress/UM2pExt/Configuration_adv.h
  71. 7
    0
      config/examples/Anet/A2/Configuration_adv.h
  72. 7
    0
      config/examples/Anet/A2plus/Configuration_adv.h
  73. 7
    0
      config/examples/Anet/A6/Configuration_adv.h
  74. 7
    0
      config/examples/Anet/A8/Configuration_adv.h
  75. 7
    0
      config/examples/Anet/A8plus/Configuration_adv.h
  76. 7
    0
      config/examples/Anet/E16/Configuration_adv.h
  77. 7
    0
      config/examples/AnyCubic/i3/Configuration_adv.h
  78. 7
    0
      config/examples/ArmEd/Configuration_adv.h
  79. 7
    0
      config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
  80. 7
    0
      config/examples/BIBO/TouchX/default/Configuration_adv.h
  81. 7
    0
      config/examples/BQ/Hephestos/Configuration_adv.h
  82. 7
    0
      config/examples/BQ/Hephestos_2/Configuration_adv.h
  83. 7
    0
      config/examples/BQ/WITBOX/Configuration_adv.h
  84. 7
    0
      config/examples/Cartesio/Configuration_adv.h
  85. 7
    0
      config/examples/Creality/CR-10/Configuration_adv.h
  86. 7
    0
      config/examples/Creality/CR-10S/Configuration_adv.h
  87. 7
    0
      config/examples/Creality/CR-10_5S/Configuration_adv.h
  88. 7
    0
      config/examples/Creality/CR-10mini/Configuration_adv.h
  89. 7
    0
      config/examples/Creality/CR-20 Pro/Configuration_adv.h
  90. 7
    0
      config/examples/Creality/CR-20/Configuration_adv.h
  91. 7
    0
      config/examples/Creality/CR-8/Configuration_adv.h
  92. 7
    0
      config/examples/Creality/Ender-2/Configuration_adv.h
  93. 7
    0
      config/examples/Creality/Ender-3/Configuration_adv.h
  94. 7
    0
      config/examples/Creality/Ender-4/Configuration_adv.h
  95. 7
    0
      config/examples/Creality/Ender-5/Configuration_adv.h
  96. 7
    0
      config/examples/Dagoma/Disco Ultimate/Configuration_adv.h
  97. 7
    0
      config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration_adv.h
  98. 7
    0
      config/examples/Einstart-S/Configuration_adv.h
  99. 7
    0
      config/examples/FYSETC/AIO_II/Configuration_adv.h
  100. 0
    0
      config/examples/FYSETC/Cheetah 1.2/BLTouch/Configuration_adv.h

+ 3
- 3
Marlin/Makefile View File

691
 CSTANDARD = -std=gnu99
691
 CSTANDARD = -std=gnu99
692
 CXXSTANDARD = -std=gnu++11
692
 CXXSTANDARD = -std=gnu++11
693
 CDEBUG = -g$(DEBUG)
693
 CDEBUG = -g$(DEBUG)
694
-CWARN   = -Wall -Wstrict-prototypes -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter
695
-CXXWARN = -Wall                     -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter
696
-CTUNING = -fsigned-char -funsigned-bitfields -fpack-struct -fno-exceptions \
694
+CWARN   = -Wall -Wstrict-prototypes -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter -Wno-format
695
+CXXWARN = -Wall                     -Wno-packed-bitfield-compat -Wno-pragmas -Wunused-parameter -Wno-format
696
+CTUNING = -fsigned-char -funsigned-bitfields -fno-exceptions \
697
           -fshort-enums -ffunction-sections -fdata-sections
697
           -fshort-enums -ffunction-sections -fdata-sections
698
 ifneq ($(HARDWARE_MOTHERBOARD),)
698
 ifneq ($(HARDWARE_MOTHERBOARD),)
699
   CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}
699
   CTUNING += -DMOTHERBOARD=${HARDWARE_MOTHERBOARD}

+ 7
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/config.h View File

82
   #define TOUCH_UI_UTF8_WESTERN_CHARSET
82
   #define TOUCH_UI_UTF8_WESTERN_CHARSET
83
 #endif
83
 #endif
84
 
84
 
85
+// When labels do not fit buttons, use smaller font
86
+//#define TOUCH_UI_FIT_TEXT
87
+
88
+// Enable support for selection of languages at run-time
89
+// (otherwise will use the value of LCD_LANGUAGE)
90
+//#define TOUCH_UI_LANGUAGE_MENU
91
+
85
 // Use a numeric passcode for "Parental lock".
92
 // Use a numeric passcode for "Parental lock".
86
 // This is a recommended for smaller displays.
93
 // This is a recommended for smaller displays.
87
 //#define TOUCH_UI_PASSCODE
94
 //#define TOUCH_UI_PASSCODE

+ 1
- 1
Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/basic/commands.cpp View File

66
   return width;
66
   return width;
67
 }
67
 }
68
 
68
 
69
-uint16_t CLCD::FontMetrics::get_text_width_P(const char *str, size_t n) const {
69
+uint16_t CLCD::FontMetrics::get_text_width(progmem_str str, size_t n) const {
70
   uint16_t width = 0;
70
   uint16_t width = 0;
71
   const uint8_t *p = (const uint8_t *) str;
71
   const uint8_t *p = (const uint8_t *) str;
72
   for(;;) {
72
   for(;;) {

+ 1
- 1
Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/basic/commands.h View File

166
 
166
 
167
     // Returns width of string, up to a maximum of n characters.
167
     // Returns width of string, up to a maximum of n characters.
168
     uint16_t get_text_width(const char *str, size_t n = SIZE_MAX) const;
168
     uint16_t get_text_width(const char *str, size_t n = SIZE_MAX) const;
169
-    uint16_t get_text_width_P(const char *str, size_t n = SIZE_MAX) const;
169
+    uint16_t get_text_width(progmem_str str, size_t n = SIZE_MAX) const;
170
 };
170
 };
171
 
171
 
172
 /******************* FT800/810 Graphic Commands *********************************/
172
 /******************* FT800/810 Graphic Commands *********************************/

+ 47
- 9
Marlin/src/lcd/extensible_ui/lib/lulzbot/ftdi_eve_lib/extended/command_processor.h View File

220
       return *this;
220
       return *this;
221
     }
221
     }
222
 
222
 
223
+    CommandProcessor& toggle2(int16_t x, int16_t y, int16_t w, int16_t h, progmem_str no, progmem_str yes, bool state, uint16_t options = FTDI::OPT_3D) {
224
+      char text[strlen_P((const char *)no) + strlen_P((const char *)yes) + 2];
225
+      strcpy_P(text, (const char *)no);
226
+      strcat(text, "\xFF");
227
+      strcat_P(text, (const char *)yes);
228
+      return toggle(x, y, w, h, text, state, options);
229
+    }
230
+
223
     // Contrained drawing routines. These constrain the widget inside a box for easier layout.
231
     // Contrained drawing routines. These constrain the widget inside a box for easier layout.
224
     // The FORCEDINLINE ensures that the code is inlined so that all the math is done at compile time.
232
     // The FORCEDINLINE ensures that the code is inlined so that all the math is done at compile time.
225
 
233
 
288
 
296
 
289
     void apply_text_alignment(int16_t &x, int16_t &y, int16_t w, int16_t h, uint16_t options) {
297
     void apply_text_alignment(int16_t &x, int16_t &y, int16_t w, int16_t h, uint16_t options) {
290
       using namespace FTDI;
298
       using namespace FTDI;
291
-      x += ((options & OPT_CENTERX) ? w / 2 : ((options & OPT_RIGHTX) ? w : 0));
292
-      y += ((options & OPT_CENTERY) ? h / 2 : h);
299
+      x += ((options & OPT_CENTERX) ? w/2 : ((options & OPT_RIGHTX) ? w : 0));
300
+      y += ((options & OPT_CENTERY) ? h/2 : h);
301
+    }
302
+
303
+    // Reduce font size until text fits the enclosing box.
304
+    template<typename T>
305
+    int8_t apply_fit_text(int16_t w, int16_t h, T text) {
306
+      using namespace FTDI;
307
+      int8_t font = _font;
308
+      for (;;) {
309
+        #ifdef TOUCH_UI_USE_UTF8
310
+          const int16_t width  = get_utf8_text_width(text, font_size_t::from_romfont(font));
311
+          const int16_t height = font_size_t::from_romfont(font).get_height();
312
+        #else
313
+          CLCD::FontMetrics fm(font);
314
+          const int16_t width  = fm.get_text_width(text);
315
+          const int16_t height = fm.height;
316
+        #endif
317
+        if ((width < w && height < h) || font == 26) break;
318
+        font--;
319
+      }
320
+      return font;
293
     }
321
     }
294
 
322
 
295
     CommandProcessor& number(int16_t x, int16_t y, int16_t w, int16_t h, int32_t n, uint16_t options = FTDI::OPT_CENTER) {
323
     CommandProcessor& number(int16_t x, int16_t y, int16_t w, int16_t h, int32_t n, uint16_t options = FTDI::OPT_CENTER) {
299
       return *this;
327
       return *this;
300
     }
328
     }
301
 
329
 
302
-    template<typename T> FORCEDINLINE
330
+    template<typename T>
303
     CommandProcessor& text(int16_t x, int16_t y, int16_t w, int16_t h, T text, uint16_t options = FTDI::OPT_CENTER) {
331
     CommandProcessor& text(int16_t x, int16_t y, int16_t w, int16_t h, T text, uint16_t options = FTDI::OPT_CENTER) {
304
       using namespace FTDI;
332
       using namespace FTDI;
305
       apply_text_alignment(x, y, w, h, options);
333
       apply_text_alignment(x, y, w, h, options);
334
+      #ifdef TOUCH_UI_FIT_TEXT
335
+        const int8_t font = apply_fit_text(w, h, text);
336
+      #else
337
+        const int8_t font = _font;
338
+      #endif
306
       #ifdef TOUCH_UI_USE_UTF8
339
       #ifdef TOUCH_UI_USE_UTF8
307
-        draw_utf8_text(*this, x, y, text, font_size_t::from_romfont(_font), options);
340
+        draw_utf8_text(*this, x, y, text, font_size_t::from_romfont(font), options);
308
       #else
341
       #else
309
-        CLCD::CommandFifo::text(x, y, _font, options);
342
+        CLCD::CommandFifo::text(x, y, font, options);
310
         CLCD::CommandFifo::str(text);
343
         CLCD::CommandFifo::str(text);
311
       #endif
344
       #endif
312
       return *this;
345
       return *this;
319
         cmd(BITMAP_TRANSFORM_A(uint32_t(float(256)/scale)));
352
         cmd(BITMAP_TRANSFORM_A(uint32_t(float(256)/scale)));
320
         cmd(BITMAP_TRANSFORM_E(uint32_t(float(256)/scale)));
353
         cmd(BITMAP_TRANSFORM_E(uint32_t(float(256)/scale)));
321
       }
354
       }
322
-      cmd(BITMAP_SIZE(info.filter, info.wrapx, info.wrapy, info.width * scale, info.height * scale));
323
-      cmd(VERTEX2F((x + w / 2 - info.width * scale / 2) * 16, (y + h / 2 - info.height * scale / 2) * 16));
355
+      cmd(BITMAP_SIZE(info.filter, info.wrapx, info.wrapy, info.width*scale, info.height*scale));
356
+      cmd(VERTEX2F((x + w/2 - info.width*scale/2)*16, (y + h/2 - info.height*scale/2)*16));
324
       if (scale != 1) {
357
       if (scale != 1) {
325
         cmd(BITMAP_TRANSFORM_A(256));
358
         cmd(BITMAP_TRANSFORM_A(256));
326
         cmd(BITMAP_TRANSFORM_E(256));
359
         cmd(BITMAP_TRANSFORM_E(256));
333
       using namespace FTDI;
366
       using namespace FTDI;
334
       bool styleModified = false;
367
       bool styleModified = false;
335
       if (_btn_style_callback) styleModified = _btn_style_callback(*this, _tag, _style, options, false);
368
       if (_btn_style_callback) styleModified = _btn_style_callback(*this, _tag, _style, options, false);
336
-      CLCD::CommandFifo::button(x, y, w, h, _font, options);
369
+      #ifdef TOUCH_UI_FIT_TEXT
370
+        const int8_t font = apply_fit_text(w, h, text);
371
+      #else
372
+        const int8_t font = _font;
373
+      #endif
374
+      CLCD::CommandFifo::button(x, y, w, h, font, options);
337
       #ifdef TOUCH_UI_USE_UTF8
375
       #ifdef TOUCH_UI_USE_UTF8
338
         apply_text_alignment(x, y, w, h, OPT_CENTER);
376
         apply_text_alignment(x, y, w, h, OPT_CENTER);
339
         CLCD::CommandFifo::str(F(""));
377
         CLCD::CommandFifo::str(F(""));
340
-        draw_utf8_text(*this, x, y, text, font_size_t::from_romfont(_font), OPT_CENTER);
378
+        draw_utf8_text(*this, x, y, text, font_size_t::from_romfont(font), OPT_CENTER);
341
       #else
379
       #else
342
         CLCD::CommandFifo::str(text);
380
         CLCD::CommandFifo::str(text);
343
       #endif
381
       #endif

+ 55
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.cpp View File

1
+/*****************
2
+ * language.cpp *
3
+ *****************/
4
+
5
+/****************************************************************************
6
+ *   Written By Mark Pelletier  2017 - Aleph Objects, Inc.                  *
7
+ *   Written By Marcio Teixeira 2018 - Aleph Objects, Inc.                  *
8
+ *                                                                          *
9
+ *   This program is free software: you can redistribute it and/or modify   *
10
+ *   it under the terms of the GNU General Public License as published by   *
11
+ *   the Free Software Foundation, either version 3 of the License, or      *
12
+ *   (at your option) any later version.                                    *
13
+ *                                                                          *
14
+ *   This program is distributed in the hope that it will be useful,        *
15
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
16
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
17
+ *   GNU General Public License for more details.                           *
18
+ *                                                                          *
19
+ *   To view a copy of the GNU General Public License, go to the following  *
20
+ *   location: <http://www.gnu.org/licenses/>.                              *
21
+ ****************************************************************************/
22
+
23
+#include "../compat.h"
24
+
25
+#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LANGUAGE_MENU)
26
+
27
+  #include "language_de.h"
28
+  #include "language_en.h"
29
+  #include "language_fr.h"
30
+
31
+  PROGMEM Language_List languages = {
32
+    &Language_de::strings,
33
+    &Language_en::strings,
34
+    &Language_fr::strings
35
+  };
36
+
37
+  uint8_t get_language_count() {
38
+    return sizeof(languages)/sizeof(languages[0]);
39
+  }
40
+
41
+  static uint8_t lang = 0;
42
+
43
+  void set_language(uint8_t l) {
44
+    lang = l;
45
+  };
46
+
47
+  const char *get_text(uint8_t lang, String_Indices index) {
48
+    const Language_Strings* strings = (const Language_Strings*) pgm_read_ptr(&languages[lang]);
49
+    return (const char *)pgm_read_ptr(&(*strings)[int(index)]);
50
+  };
51
+
52
+  const char *get_text(String_Indices index) {
53
+    return get_text(lang, index);
54
+  };
55
+#endif

+ 46
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h View File

1
+/**************
2
+ * language.h *
3
+ **************/
4
+
5
+/****************************************************************************
6
+ *   Written By Marcio Teixeira 2019 - Aleph Objects, Inc.                  *
7
+ *                                                                          *
8
+ *   This program is free software: you can redistribute it and/or modify   *
9
+ *   it under the terms of the GNU General Public License as published by   *
10
+ *   the Free Software Foundation, either version 3 of the License, or      *
11
+ *   (at your option) any later version.                                    *
12
+ *                                                                          *
13
+ *   This program is distributed in the hope that it will be useful,        *
14
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU General Public License for more details.                           *
17
+ *                                                                          *
18
+ *   To view a copy of the GNU General Public License, go to the following  *
19
+ *   location: <http://www.gnu.org/licenses/>.                              *
20
+ ****************************************************************************/
21
+
22
+#pragma once
23
+
24
+enum class String_Indices { LANGUAGE_STRINGS, COUNT };
25
+
26
+typedef const char Language_Str[];
27
+typedef const char* const Language_Strings[int(String_Indices::COUNT)];
28
+typedef const Language_Strings* const Language_List[];
29
+
30
+#ifndef TOUCH_UI_LANGUAGE_MENU
31
+  // Default mode, support only one language.
32
+  #define __GET_TEXTF(MSG,LANG) Language_##LANG::MSG
33
+  #define _GET_TEXTF(MSG,LANG) __GET_TEXTF(MSG,LANG)
34
+  #define GET_TEXTF(MSG) reinterpret_cast<const __FlashStringHelper *>(_GET_TEXTF(MSG,LCD_LANGUAGE))
35
+  #define GET_TEXT(MSG) _GET_TEXTF(MSG,LCD_LANGUAGE)
36
+  #define MAKE_LANGUAGE_STRINGS()
37
+#else
38
+  // Support multiple languages at run-time.
39
+  uint8_t get_language_count();
40
+  void set_language(uint8_t index);
41
+  const char *get_text(String_Indices index);
42
+  const char *get_text(uint8_t lang, String_Indices index);
43
+  #define GET_TEXT(MSG) get_text(String_Indices::MSG)
44
+  #define GET_TEXTF(MSG) reinterpret_cast<const __FlashStringHelper *>(get_text(String_Indices::MSG))
45
+  #define MAKE_LANGUAGE_STRINGS() PROGMEM Language_Strings strings = { LANGUAGE_STRINGS }
46
+#endif

+ 84
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h View File

1
+/*****************
2
+ * language_de.h *
3
+ *****************/
4
+
5
+/****************************************************************************
6
+ *   Written By Marcio Teixeira 2019 - Aleph Objects, Inc.                  *
7
+ *                                                                          *
8
+ *   This program is free software: you can redistribute it and/or modify   *
9
+ *   it under the terms of the GNU General Public License as published by   *
10
+ *   the Free Software Foundation, either version 3 of the License, or      *
11
+ *   (at your option) any later version.                                    *
12
+ *                                                                          *
13
+ *   This program is distributed in the hope that it will be useful,        *
14
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU General Public License for more details.                           *
17
+ *                                                                          *
18
+ *   To view a copy of the GNU General Public License, go to the following  *
19
+ *   location: <http://www.gnu.org/licenses/>.                              *
20
+ ****************************************************************************/
21
+
22
+#pragma once
23
+
24
+#include "language_en.h"
25
+
26
+namespace Language_de {
27
+  using namespace Language_en;
28
+
29
+  PROGMEM Language_Str LANGUAGE                 = u8"Deutsche";
30
+
31
+  PROGMEM Language_Str YES                      = u8"JA";
32
+  PROGMEM Language_Str NO                       = u8"NEIN";
33
+  PROGMEM Language_Str BACK                     = u8"Zurück";
34
+
35
+  PROGMEM Language_Str MOVE_AXIS                = u8"Achsen bewegen";
36
+  PROGMEM Language_Str MOTORS_OFF               = u8"Motoren deaktivieren";
37
+  PROGMEM Language_Str TEMPERATURE              = u8"Temperatur";
38
+  PROGMEM Language_Str CHANGE_FILAMENT          = u8"Filament wechseln";
39
+  PROGMEM Language_Str ADVANCED_SETTINGS        = u8"Erw. Einstellungen";
40
+  PROGMEM Language_Str ABOUT_PRINTER            = u8"Über den Drucker";
41
+  PROGMEM Language_Str PRINTER_STATISTICS       = u8"Drucker-Statistik";
42
+
43
+  PROGMEM Language_Str ZPROBE_ZOFFSET           = u8"Sondenversatz Z";
44
+  PROGMEM Language_Str TOOL_OFFSETS             = u8"Werkzeugversätze";
45
+  PROGMEM Language_Str VELOCITY                 = u8"Geschwindigkeit";
46
+  PROGMEM Language_Str ACCELERATION             = u8"Beschleunigung";
47
+  PROGMEM Language_Str ACCEL_PRINTING           = u8"Beschleunigung";
48
+  PROGMEM Language_Str ACCEL_TRAVEL             = u8"A Einzug";
49
+  PROGMEM Language_Str ACCEL_RETRACT            = u8"A Leerfahrt";
50
+  PROGMEM Language_Str BACKLASH                 = u8"Spiel";
51
+  PROGMEM Language_Str SMOOTHING                = u8"Glätten";
52
+  PROGMEM Language_Str CORRECTION               = u8"Korrektur";
53
+  PROGMEM Language_Str ENDSTOPS                 = u8"Endstopp";
54
+  PROGMEM Language_Str SOFT_ENDSTOPS            = u8"Software-Endstopp";
55
+  PROGMEM Language_Str RESTORE_DEFAULTS         = u8"Standardwerte laden";
56
+
57
+
58
+  PROGMEM Language_Str HOTEND                   = u8"Düse";
59
+  PROGMEM Language_Str HOTEND1                  = u8"Düse 1";
60
+  PROGMEM Language_Str HOTEND2                  = u8"Düse 2";
61
+  PROGMEM Language_Str HOTEND3                  = u8"Düse 3";
62
+  PROGMEM Language_Str HOTEND4                  = u8"Düse 4";
63
+  PROGMEM Language_Str BED                      = u8"Bett";
64
+  PROGMEM Language_Str AXIS_ALL                 = u8"Alle";
65
+
66
+  PROGMEM Language_Str FAN_SPEED                = u8"Lüfter";
67
+
68
+  PROGMEM Language_Str PRINT_FILE               = u8"Drucken";
69
+
70
+  PROGMEM Language_Str RESUME_PRINT             = u8"SD-Druck fortsetzen";
71
+  PROGMEM Language_Str PAUSE_PRINT              = u8"SD-Druck pausieren";
72
+  PROGMEM Language_Str STOP_PRINT               = u8"SD-Druck abbrechen";
73
+
74
+  PROGMEM Language_Str INFO_PRINT_COUNT         = u8"Gesamte Drucke";
75
+  PROGMEM Language_Str INFO_COMPLETED_PRINTS    = u8"Komplette Drucke";
76
+  PROGMEM Language_Str INFO_PRINT_TIME          = u8"Gesamte Druckzeit";
77
+  PROGMEM Language_Str INFO_PRINT_LONGEST       = u8"Längste Druckzeit";
78
+  PROGMEM Language_Str INFO_PRINT_FILAMENT      = u8"Gesamt Extrudiert";
79
+
80
+  PROGMEM Language_Str PRINTER_HALTED           = u8"DRUCKER GESTOPPT";
81
+  PROGMEM Language_Str PLEASE_RESET             = u8"Bitte neustarten";
82
+
83
+  MAKE_LANGUAGE_STRINGS();
84
+}; // namespace Language_de

+ 410
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h View File

1
+/*****************
2
+ * language_en.h *
3
+ *****************/
4
+
5
+/****************************************************************************
6
+ *   Written By Marcio Teixeira 2019 - Aleph Objects, Inc.                  *
7
+ *                                                                          *
8
+ *   This program is free software: you can redistribute it and/or modify   *
9
+ *   it under the terms of the GNU General Public License as published by   *
10
+ *   the Free Software Foundation, either version 3 of the License, or      *
11
+ *   (at your option) any later version.                                    *
12
+ *                                                                          *
13
+ *   This program is distributed in the hope that it will be useful,        *
14
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU General Public License for more details.                           *
17
+ *                                                                          *
18
+ *   To view a copy of the GNU General Public License, go to the following  *
19
+ *   location: <http://www.gnu.org/licenses/>.                              *
20
+ ****************************************************************************/
21
+
22
+#pragma once
23
+
24
+// The list LANGUAGE_STRINGS should define all the strings used in the default
25
+// language (Language_en). Translations do *not* need to re-define this.
26
+
27
+#define LANGUAGE_STRINGS \
28
+  LANGUAGE, \
29
+  YES, \
30
+  NO, \
31
+  BACK, \
32
+  COLOR_TOUCH_PANEL, \
33
+  ABOUT_ALEPH_OBJECTS, OKAY, \
34
+  FIRMWARE_FOR_TOOLHEAD, \
35
+  AUTO_HOME, \
36
+  CLEAN_NOZZLE, \
37
+  CHANGE_FILAMENT, \
38
+  ADVANCED_SETTINGS, \
39
+  PRINTER_STATISTICS, \
40
+  ABOUT_PRINTER, \
41
+  MOTORS_OFF, \
42
+  ZPROBE_ZOFFSET, \
43
+  STEPS_PER_MM, \
44
+  HOME_SENSE, \
45
+  TOOL_OFFSETS, \
46
+  MOTOR_CURRENT, \
47
+  FILAMENT, \
48
+  ENDSTOPS, \
49
+  X_MAX, \
50
+  X_MIN, \
51
+  Y_MAX, \
52
+  Y_MIN, \
53
+  Z_MAX, \
54
+  Z_MIN, \
55
+  Z_PROBE, \
56
+  RUNOUT_1, \
57
+  RUNOUT_2, \
58
+  SOFT_ENDSTOPS, \
59
+  DISPLAY_MENU, \
60
+  INTERFACE_SETTINGS, \
61
+  RESTORE_DEFAULTS, \
62
+  VELOCITY, \
63
+  VMAX_X, \
64
+  VMAX_Y, \
65
+  VMAX_Z, \
66
+  VMAX_E1, \
67
+  VMAX_E2, \
68
+  VMAX_E3, \
69
+  VMAX_E4, \
70
+  ACCELERATION, \
71
+  ACCEL_PRINTING, \
72
+  ACCEL_TRAVEL, \
73
+  ACCEL_RETRACT, \
74
+  AMAX_X, \
75
+  AMAX_Y, \
76
+  AMAX_Z, \
77
+  AMAX_E1, \
78
+  AMAX_E2, \
79
+  AMAX_E3, \
80
+  AMAX_E4, \
81
+  JERK, \
82
+  JUNCTION_DEVIATION, \
83
+  BACKLASH, \
84
+  MEASURE_AUTOMATICALLY, \
85
+  H_OFFSET, \
86
+  V_OFFSET, \
87
+  TOUCH_SCREEN, \
88
+  CALIBRATE, \
89
+  HOME, \
90
+  UNITS_MILLIAMP, \
91
+  UNITS_MM, \
92
+  UNITS_MM_S, \
93
+  UNITS_MM_S2, \
94
+  UNITS_STEP_MM, \
95
+  UNITS_PERCENT, \
96
+  UNITS_C, \
97
+  TEMP_IDLE, \
98
+  MATERIAL_PLA, \
99
+  MATERIAL_ABS, \
100
+  MATERIAL_HIGH_TEMP, \
101
+  AXIS_X, \
102
+  AXIS_Y, \
103
+  AXIS_Z, \
104
+  AXIS_E, \
105
+  AXIS_E1, \
106
+  AXIS_E2, \
107
+  AXIS_E3, \
108
+  AXIS_E4, \
109
+  AXIS_ALL, \
110
+  HOTEND, \
111
+  HOTEND1, \
112
+  HOTEND2, \
113
+  HOTEND3, \
114
+  HOTEND4, \
115
+  BED, \
116
+  SMOOTHING, \
117
+  CORRECTION, \
118
+  PRINTING, \
119
+  SET_MAXIMUM, \
120
+  RUNOUT_SENSOR, \
121
+  DETECTION_THRESHOLD, \
122
+  DISTANCE, \
123
+  TEMPERATURE, \
124
+  COOLDOWN, \
125
+  FAN_SPEED, \
126
+  PRINT_SPEED, \
127
+  SPEED, \
128
+  MOVE_AXIS, \
129
+  LINEAR_ADVANCE, \
130
+  LINEAR_ADVANCE_K, \
131
+  LINEAR_ADVANCE_K1, \
132
+  LINEAR_ADVANCE_K2, \
133
+  LINEAR_ADVANCE_K3, \
134
+  LINEAR_ADVANCE_K4, \
135
+  NUDGE_NOZZLE, \
136
+  ADJUST_BOTH_NOZZLES, \
137
+  SHOW_OFFSETS, \
138
+  INCREMENT, \
139
+  ERASE_FLASH_WARNING, \
140
+  ERASING, \
141
+  ERASED, \
142
+  CALIBRATION_WARNING, \
143
+  ABORT_WARNING, \
144
+  EXTRUDER_SELECTION, \
145
+  CURRENT_TEMPERATURE, \
146
+  REMOVAL_TEMPERATURE, \
147
+  HEATING, \
148
+  CAUTION, \
149
+  HOT, \
150
+  UNLOAD_FILAMENT, \
151
+  LOAD_FILAMENT, \
152
+  MOMENTARY, \
153
+  CONTINUOUS, \
154
+  PLEASE_WAIT, \
155
+  PRINT_MENU, \
156
+  FINE_MOTION, \
157
+  MEDIA, \
158
+  ENABLE_MEDIA, \
159
+  INSERT_MEDIA, \
160
+  MENU, \
161
+  LCD_BRIGHTNESS, \
162
+  SOUND_VOLUME, \
163
+  SCREEN_LOCK, \
164
+  BOOT_SCREEN, \
165
+  INTERFACE_SOUNDS, \
166
+  EEPROM_RESTORED, \
167
+  EEPROM_RESET, \
168
+  EEPROM_SAVED, \
169
+  EEPROM_SAVE_PROMPT, \
170
+  EEPROM_RESET_WARNING, \
171
+  OPEN_DIR, \
172
+  PRINT_FILE, \
173
+  PRINT_STARTING, \
174
+  PRINT_FINISHED, \
175
+  PRINT_ERROR, \
176
+  PASSCODE_REJECTED, \
177
+  PASSCODE_ACCEPTED, \
178
+  PASSCODE_SELECT, \
179
+  PASSCODE_REQUEST, \
180
+  PRINTER_HALTED, \
181
+  PLEASE_RESET, \
182
+  CLICK_SOUNDS, \
183
+  INFO_PRINT_COUNT, \
184
+  INFO_COMPLETED_PRINTS, \
185
+  INFO_PRINT_TIME, \
186
+  INFO_PRINT_LONGEST, \
187
+  INFO_PRINT_FILAMENT, \
188
+  RESUME_PRINT, \
189
+  PAUSE_PRINT, \
190
+  STOP_PRINT, \
191
+  TOUCH_CALIBRATION_START, \
192
+  TOUCH_CALIBRATION_PROMPT \
193
+  LULZBOT_BIOPRINTER_STRINGS
194
+
195
+#ifndef LULZBOT_USE_BIOPRINTER_UI
196
+  #define LULZBOT_BIOPRINTER_STRINGS
197
+#else
198
+  #define LULZBOT_BIOPRINTER_STRINGS ,\
199
+    MAIN_MENU, \
200
+    UNLOCK_XY_AXIS, \
201
+    LOAD_SYRINGE, \
202
+    BED_TEMPERATURE, \
203
+    LOADING_WARNING, \
204
+    HOMING_WARNING
205
+#endif
206
+
207
+#include "language.h" // This must be included after LANGUAGE_STRINGS
208
+
209
+// The string table for this language.
210
+
211
+namespace Language_en {
212
+  PROGMEM Language_Str LANGUAGE                 = u8"English";
213
+
214
+  PROGMEM Language_Str YES                      = u8"Yes";
215
+  PROGMEM Language_Str NO                       = u8"No";
216
+  PROGMEM Language_Str BACK                     = u8"Back";
217
+  PROGMEM Language_Str OKAY                     = u8"Okay";
218
+  PROGMEM Language_Str MENU                     = u8"Menu";
219
+  PROGMEM Language_Str MEDIA                    = u8"Media";
220
+
221
+  PROGMEM Language_Str AUTO_HOME                = u8"Auto Home";
222
+  PROGMEM Language_Str CLEAN_NOZZLE             = u8"Clean Nozzle";
223
+  PROGMEM Language_Str MOVE_AXIS                = u8"Move Axis";
224
+  PROGMEM Language_Str MOTORS_OFF               = u8"Motors Off";
225
+  PROGMEM Language_Str TEMPERATURE              = u8"Temperature";
226
+  PROGMEM Language_Str CHANGE_FILAMENT          = u8"Change Filament";
227
+  PROGMEM Language_Str ADVANCED_SETTINGS        = u8"Advanced Settings";
228
+  PROGMEM Language_Str ABOUT_PRINTER            = u8"About Printer";
229
+  PROGMEM Language_Str PRINTER_STATISTICS       = u8"Printer Statistics";
230
+
231
+  PROGMEM Language_Str ZPROBE_ZOFFSET           = u8"Z Offset";
232
+  PROGMEM Language_Str STEPS_PER_MM             = u8"Steps/mm";
233
+  PROGMEM Language_Str TOOL_OFFSETS             = u8"Tool Offsets";
234
+  PROGMEM Language_Str VELOCITY                 = u8"Velocity";
235
+  PROGMEM Language_Str VMAX_X                   = u8"Vmax X";
236
+  PROGMEM Language_Str VMAX_Y                   = u8"Vmax Y";
237
+  PROGMEM Language_Str VMAX_Z                   = u8"Vmax Z";
238
+  PROGMEM Language_Str VMAX_E1                  = u8"Vmax E1";
239
+  PROGMEM Language_Str VMAX_E2                  = u8"Vmax E2";
240
+  PROGMEM Language_Str VMAX_E3                  = u8"Vmax E3";
241
+  PROGMEM Language_Str VMAX_E4                  = u8"Vmax E4";
242
+  PROGMEM Language_Str ACCELERATION             = u8"Acceleration";
243
+  PROGMEM Language_Str ACCEL_PRINTING           = u8"Printing";
244
+  PROGMEM Language_Str ACCEL_TRAVEL             = u8"Travel";
245
+  PROGMEM Language_Str ACCEL_RETRACT            = u8"Retraction";
246
+  PROGMEM Language_Str AMAX_X                   = u8"Amax X";
247
+  PROGMEM Language_Str AMAX_Y                   = u8"Amax Y";
248
+  PROGMEM Language_Str AMAX_Z                   = u8"Amax Z";
249
+  PROGMEM Language_Str AMAX_E1                  = u8"Amax E1";
250
+  PROGMEM Language_Str AMAX_E2                  = u8"Amax E2";
251
+  PROGMEM Language_Str AMAX_E3                  = u8"Amax E3";
252
+  PROGMEM Language_Str AMAX_E4                  = u8"Amax E4";
253
+  PROGMEM Language_Str JERK                     = u8"Jerk";
254
+  PROGMEM Language_Str JUNCTION_DEVIATION       = u8"Junc Dev";
255
+  PROGMEM Language_Str BACKLASH                 = u8"Backlash";
256
+  PROGMEM Language_Str SMOOTHING                = u8"Smoothing";
257
+  PROGMEM Language_Str CORRECTION               = u8"Correction";
258
+  PROGMEM Language_Str MOTOR_CURRENT            = u8"Currents";
259
+  PROGMEM Language_Str FILAMENT                 = u8"Filament";
260
+  PROGMEM Language_Str ENDSTOPS                 = u8"Endstops";
261
+  PROGMEM Language_Str SOFT_ENDSTOPS            = u8"Soft Endstops";
262
+  PROGMEM Language_Str RESTORE_DEFAULTS         = u8"Restore Defaults";
263
+
264
+  PROGMEM Language_Str HOTEND                   = u8"Hot End";
265
+  PROGMEM Language_Str HOTEND1                  = u8"Hot End 1";
266
+  PROGMEM Language_Str HOTEND2                  = u8"Hot End 2";
267
+  PROGMEM Language_Str HOTEND3                  = u8"Hot End 3";
268
+  PROGMEM Language_Str HOTEND4                  = u8"Hot End 4";
269
+  PROGMEM Language_Str BED                      = u8"Bed";
270
+  PROGMEM Language_Str AXIS_X                   = u8"X";
271
+  PROGMEM Language_Str AXIS_Y                   = u8"Y";
272
+  PROGMEM Language_Str AXIS_Z                   = u8"Z";
273
+  PROGMEM Language_Str AXIS_E                   = u8"E";
274
+  PROGMEM Language_Str AXIS_E1                  = u8"E1";
275
+  PROGMEM Language_Str AXIS_E2                  = u8"E2";
276
+  PROGMEM Language_Str AXIS_E3                  = u8"E3";
277
+  PROGMEM Language_Str AXIS_E4                  = u8"E4";
278
+  PROGMEM Language_Str AXIS_ALL                 = u8"All";
279
+  PROGMEM Language_Str HOME                     = u8"Home";
280
+
281
+  PROGMEM Language_Str FAN_SPEED                = u8"Fan Speed";
282
+  PROGMEM Language_Str RUNOUT_SENSOR            = u8"Runout Sensor";
283
+
284
+  PROGMEM Language_Str OPEN_DIR                 = u8"Open";
285
+  PROGMEM Language_Str PRINT_FILE               = u8"Print";
286
+
287
+  PROGMEM Language_Str RESUME_PRINT             = u8"Resume Print";
288
+  PROGMEM Language_Str PAUSE_PRINT              = u8"Pause Print";
289
+  PROGMEM Language_Str STOP_PRINT               = u8"Stop Print";
290
+
291
+  PROGMEM Language_Str PRINT_STARTING           = u8"Print starting";
292
+  PROGMEM Language_Str PRINT_FINISHED           = u8"Print finished";
293
+  PROGMEM Language_Str PRINT_ERROR              = u8"Print error";
294
+
295
+  PROGMEM Language_Str INFO_PRINT_COUNT         = u8"Print Count";
296
+  PROGMEM Language_Str INFO_COMPLETED_PRINTS    = u8"Total Prints";
297
+  PROGMEM Language_Str INFO_PRINT_TIME          = u8"Total Print Time";
298
+  PROGMEM Language_Str INFO_PRINT_LONGEST       = u8"Longest Print";
299
+  PROGMEM Language_Str INFO_PRINT_FILAMENT      = u8"Filament Used";
300
+
301
+  PROGMEM Language_Str PRINTER_HALTED           = u8"PRINTER HALTED";
302
+  PROGMEM Language_Str PLEASE_RESET             = u8"Please reset";
303
+
304
+  PROGMEM Language_Str COLOR_TOUCH_PANEL        = u8"Color Touch Panel";
305
+  PROGMEM Language_Str ABOUT_ALEPH_OBJECTS      = u8"(C) 2019 Aleph Objects, Inc.\n\nwww.lulzbot.com";
306
+
307
+  PROGMEM Language_Str FIRMWARE_FOR_TOOLHEAD    = u8"Firmware for toolhead:\n%s\n\n";
308
+
309
+  PROGMEM Language_Str HOME_SENSE               = u8"Home Sense";
310
+  PROGMEM Language_Str X_MAX                    = u8"X Max";
311
+  PROGMEM Language_Str X_MIN                    = u8"X Min";
312
+  PROGMEM Language_Str Y_MAX                    = u8"Y Max";
313
+  PROGMEM Language_Str Y_MIN                    = u8"Y Min";
314
+  PROGMEM Language_Str Z_MAX                    = u8"Z Max";
315
+  PROGMEM Language_Str Z_MIN                    = u8"Z Min";
316
+  PROGMEM Language_Str Z_PROBE                  = u8"Z Probe";
317
+  PROGMEM Language_Str RUNOUT_1                 = u8"Runout 1";
318
+  PROGMEM Language_Str RUNOUT_2                 = u8"Runout 2";
319
+  PROGMEM Language_Str DISPLAY_MENU             = u8"Display";
320
+  PROGMEM Language_Str INTERFACE_SETTINGS       = u8"Interface Settings";
321
+  PROGMEM Language_Str MEASURE_AUTOMATICALLY    = u8"Measure automatically";
322
+  PROGMEM Language_Str H_OFFSET                 = u8"H Offset";
323
+  PROGMEM Language_Str V_OFFSET                 = u8"V Offset";
324
+  PROGMEM Language_Str TOUCH_SCREEN             = u8"Touch Screen";
325
+  PROGMEM Language_Str CALIBRATE                = u8"Calibrate";
326
+
327
+  PROGMEM Language_Str UNITS_MILLIAMP           = u8"mA";
328
+  PROGMEM Language_Str UNITS_MM                 = u8"mm";
329
+  PROGMEM Language_Str UNITS_MM_S               = u8"mm/s";
330
+  PROGMEM Language_Str UNITS_MM_S2              = u8"mm/s^2";
331
+  PROGMEM Language_Str UNITS_STEP_MM            = u8"st/mm";
332
+  PROGMEM Language_Str UNITS_PERCENT            = u8"%";
333
+  #if defined(TOUCH_UI_USE_UTF8) && defined(TOUCH_UI_UTF8_WESTERN_CHARSET)
334
+    PROGMEM Language_Str UNITS_C                = u8"°C";
335
+  #else
336
+    PROGMEM Language_Str UNITS_C                = u8" C";
337
+  #endif
338
+  PROGMEM Language_Str MATERIAL_PLA             = u8"PLA";
339
+  PROGMEM Language_Str MATERIAL_ABS             = u8"ABS";
340
+  PROGMEM Language_Str MATERIAL_HIGH_TEMP       = u8"High";
341
+  PROGMEM Language_Str TEMP_IDLE                = u8"idle";
342
+
343
+  PROGMEM Language_Str PRINTING                 = u8"Printing";
344
+  PROGMEM Language_Str SET_MAXIMUM              = u8"Set Maximum";
345
+  PROGMEM Language_Str DETECTION_THRESHOLD      = u8"Detection Threshold";
346
+  PROGMEM Language_Str DISTANCE                 = u8"Distance";
347
+  PROGMEM Language_Str COOLDOWN                 = u8"Cooldown (All Off)";
348
+  PROGMEM Language_Str PRINT_SPEED              = u8"Print Speed";
349
+  PROGMEM Language_Str SPEED                    = u8"Speed";
350
+  PROGMEM Language_Str LINEAR_ADVANCE           = u8"Linear Advance";
351
+  PROGMEM Language_Str LINEAR_ADVANCE_K         = u8"K";
352
+  PROGMEM Language_Str LINEAR_ADVANCE_K1        = u8"K E1";
353
+  PROGMEM Language_Str LINEAR_ADVANCE_K2        = u8"K E2";
354
+  PROGMEM Language_Str LINEAR_ADVANCE_K3        = u8"K E3";
355
+  PROGMEM Language_Str LINEAR_ADVANCE_K4        = u8"K E4";
356
+  PROGMEM Language_Str NUDGE_NOZZLE             = u8"Nudge Nozzle";
357
+  PROGMEM Language_Str ADJUST_BOTH_NOZZLES      = u8"Adjust Both Nozzles";
358
+  PROGMEM Language_Str SHOW_OFFSETS             = u8"Show Offsets";
359
+  PROGMEM Language_Str INCREMENT                = u8"Increment";
360
+  PROGMEM Language_Str ERASE_FLASH_WARNING      = u8"Are you sure? SPI flash will be erased.";
361
+  PROGMEM Language_Str ERASING                  = u8"Erasing...";
362
+  PROGMEM Language_Str ERASED                   = u8"SPI flash erased";
363
+  PROGMEM Language_Str CALIBRATION_WARNING      = u8"For best results, unload the filament and clean the hotend prior to starting calibration. Continue?";
364
+  PROGMEM Language_Str ABORT_WARNING            = u8"Are you sure you want to cancel the print?";
365
+  PROGMEM Language_Str EXTRUDER_SELECTION       = u8"Extruder Selection";
366
+  PROGMEM Language_Str CURRENT_TEMPERATURE      = u8"Current Temp";
367
+  PROGMEM Language_Str REMOVAL_TEMPERATURE      = u8"Removal Temp";
368
+  PROGMEM Language_Str HEATING                  = u8"Heating";
369
+  PROGMEM Language_Str CAUTION                  = u8"Caution:";
370
+  PROGMEM Language_Str HOT                      = u8"Hot!";
371
+  PROGMEM Language_Str UNLOAD_FILAMENT          = u8"Unload";
372
+  PROGMEM Language_Str LOAD_FILAMENT            = u8"Load/Extruder";
373
+  PROGMEM Language_Str MOMENTARY                = u8"Momentary";
374
+  PROGMEM Language_Str CONTINUOUS               = u8"Continuous";
375
+  PROGMEM Language_Str PLEASE_WAIT              = u8"Please wait...";
376
+  PROGMEM Language_Str PRINT_MENU               = u8"Print Menu";
377
+  PROGMEM Language_Str FINE_MOTION              = u8"Fine motion";
378
+  PROGMEM Language_Str ENABLE_MEDIA             = u8"Enable Media";
379
+  PROGMEM Language_Str INSERT_MEDIA             = u8"Insert Media...";
380
+  PROGMEM Language_Str LCD_BRIGHTNESS           = u8"LCD brightness";
381
+  PROGMEM Language_Str SOUND_VOLUME             = u8"Sound volume";
382
+  PROGMEM Language_Str SCREEN_LOCK              = u8"Screen lock";
383
+  PROGMEM Language_Str BOOT_SCREEN              = u8"Boot screen";
384
+  PROGMEM Language_Str INTERFACE_SOUNDS         = u8"Interface Sounds";
385
+  PROGMEM Language_Str CLICK_SOUNDS             = u8"Click sounds";
386
+  PROGMEM Language_Str EEPROM_RESTORED          = u8"Settings restored from backup";
387
+  PROGMEM Language_Str EEPROM_RESET             = u8"Settings restored to default";
388
+  PROGMEM Language_Str EEPROM_SAVED             = u8"Settings saved!";
389
+  PROGMEM Language_Str EEPROM_SAVE_PROMPT       = u8"Do you wish to save these settings as defaults?";
390
+  PROGMEM Language_Str EEPROM_RESET_WARNING     = u8"Are you sure? Customizations will be lost.";
391
+
392
+  PROGMEM Language_Str PASSCODE_REJECTED        = u8"Wrong passcode!";
393
+  PROGMEM Language_Str PASSCODE_ACCEPTED        = u8"Passcode accepted!";
394
+  PROGMEM Language_Str PASSCODE_SELECT          = u8"Select Passcode:";
395
+  PROGMEM Language_Str PASSCODE_REQUEST         = u8"Enter Passcode:";
396
+
397
+  PROGMEM Language_Str TOUCH_CALIBRATION_START  = u8"Release to begin screen calibration";
398
+  PROGMEM Language_Str TOUCH_CALIBRATION_PROMPT = u8"Touch the dots to calibrate";
399
+
400
+  #ifdef LULZBOT_USE_BIOPRINTER_UI
401
+    PROGMEM Language_Str MAIN_MENU              = u8"Main Menu";
402
+    PROGMEM Language_Str UNLOCK_XY_AXIS         = u8"Unlock XY Axis";
403
+    PROGMEM Language_Str LOAD_SYRINGE           = u8"Load Syringe";
404
+    PROGMEM Language_Str BED_TEMPERATURE        = u8"Bed Temperature";
405
+    PROGMEM Language_Str LOADING_WARNING        = u8"About to home to loading position.\nEnsure the top and the bed of the printer are clear.\n\nContinue?";
406
+    PROGMEM Language_Str HOMING_WARNING         = u8"About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?";
407
+  #endif
408
+
409
+  MAKE_LANGUAGE_STRINGS();
410
+}; // namespace Language_en

+ 90
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h View File

1
+/*****************
2
+ * language_fr.h *
3
+ *****************/
4
+
5
+/****************************************************************************
6
+ *   Written By Marcio Teixeira 2019 - Aleph Objects, Inc.                  *
7
+ *                                                                          *
8
+ *   This program is free software: you can redistribute it and/or modify   *
9
+ *   it under the terms of the GNU General Public License as published by   *
10
+ *   the Free Software Foundation, either version 3 of the License, or      *
11
+ *   (at your option) any later version.                                    *
12
+ *                                                                          *
13
+ *   This program is distributed in the hope that it will be useful,        *
14
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU General Public License for more details.                           *
17
+ *                                                                          *
18
+ *   To view a copy of the GNU General Public License, go to the following  *
19
+ *   location: <http://www.gnu.org/licenses/>.                              *
20
+ ****************************************************************************/
21
+
22
+#pragma once
23
+
24
+#include "language_en.h"
25
+
26
+namespace Language_fr {
27
+  using namespace Language_en;
28
+
29
+  PROGMEM Language_Str LANGUAGE                 = u8"Français";
30
+
31
+  PROGMEM Language_Str YES                      = u8"oui";
32
+  PROGMEM Language_Str NO                       = u8"non";
33
+  PROGMEM Language_Str BACK                     = u8"Retour";
34
+
35
+  PROGMEM Language_Str AUTO_HOME                = u8"Origine auto";
36
+  //PROGMEM Language_Str CLEAN_NOZZLE             = u8"Clean Nozzle";
37
+  PROGMEM Language_Str MOVE_AXIS                = u8"Déplacer un axe";
38
+  PROGMEM Language_Str MOTORS_OFF               = u8"Arrêter moteurs";
39
+  PROGMEM Language_Str TEMPERATURE              = u8"Température";
40
+  PROGMEM Language_Str CHANGE_FILAMENT          = u8"Changer filament";
41
+  PROGMEM Language_Str ADVANCED_SETTINGS        = u8"Config. avancée";
42
+  PROGMEM Language_Str ABOUT_PRINTER            = u8"Infos imprimante";
43
+  PROGMEM Language_Str PRINTER_STATISTICS       = u8"Stats. imprimante";
44
+
45
+  PROGMEM Language_Str ZPROBE_ZOFFSET           = u8"Décalage Z";
46
+  PROGMEM Language_Str STEPS_PER_MM             = u8"Pas/mm";
47
+  PROGMEM Language_Str TOOL_OFFSETS             = u8"Offsets Outil";
48
+  PROGMEM Language_Str VELOCITY                 = u8"Vélocité";
49
+  PROGMEM Language_Str ACCELERATION             = u8"Accélération";
50
+  PROGMEM Language_Str ACCEL_PRINTING           = u8"A impr.";
51
+  PROGMEM Language_Str ACCEL_TRAVEL             = u8"A dépl.";
52
+  PROGMEM Language_Str ACCEL_RETRACT            = u8"A retrait";
53
+  PROGMEM Language_Str JUNCTION_DEVIATION       = u8"Déviat. jonct.";
54
+  //PROGMEM Language_Str BACKLASH                 = u8"Backlash";
55
+  PROGMEM Language_Str SMOOTHING                = u8"Lissage";
56
+  PROGMEM Language_Str MOTOR_CURRENT            = u8"Courant";
57
+  PROGMEM Language_Str ENDSTOPS                 = u8"Butées";
58
+  PROGMEM Language_Str SOFT_ENDSTOPS            = u8"Butées SW";
59
+  PROGMEM Language_Str RESTORE_DEFAULTS         = u8"Restaurer défauts";
60
+
61
+
62
+  PROGMEM Language_Str HOTEND                   = u8"Buse";
63
+  PROGMEM Language_Str HOTEND1                  = u8"Buse 1";
64
+  PROGMEM Language_Str HOTEND2                  = u8"Buse 2";
65
+  PROGMEM Language_Str HOTEND3                  = u8"Buse 3";
66
+  PROGMEM Language_Str HOTEND4                  = u8"Buse 4";
67
+  PROGMEM Language_Str BED                      = u8"Lit";
68
+  PROGMEM Language_Str AXIS_ALL                 = u8"Tous";
69
+  PROGMEM Language_Str HOME                     = u8"Origine";
70
+
71
+  PROGMEM Language_Str FAN_SPEED                = u8"Vitesse ventil.";
72
+  PROGMEM Language_Str RUNOUT_SENSOR            = u8"Capteur fil.";
73
+
74
+  PROGMEM Language_Str PRINT_FILE               = u8"Imprimer";
75
+
76
+  PROGMEM Language_Str RESUME_PRINT             = u8"Reprendre impr.";
77
+  PROGMEM Language_Str PAUSE_PRINT              = u8"Pause impression";
78
+  PROGMEM Language_Str STOP_PRINT               = u8"Arrêter impr.";
79
+
80
+  PROGMEM Language_Str INFO_PRINT_COUNT         = u8"Nbre impressions";
81
+  PROGMEM Language_Str INFO_COMPLETED_PRINTS    = u8"Terminées";
82
+  PROGMEM Language_Str INFO_PRINT_TIME          = u8"Tps impr. total";
83
+  PROGMEM Language_Str INFO_PRINT_LONGEST       = u8"Impr. la + longue";
84
+  PROGMEM Language_Str INFO_PRINT_FILAMENT      = u8"Total filament";
85
+
86
+  PROGMEM Language_Str PRINTER_HALTED           = u8"IMPR. STOPPÉE";
87
+  PROGMEM Language_Str PLEASE_RESET             = u8"Redémarrer SVP";
88
+
89
+  MAKE_LANGUAGE_STRINGS();
90
+}; // namespace Language_fr

+ 26
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/language/languages.h View File

1
+/***************
2
+ * languages.h *
3
+ ***************/
4
+
5
+/****************************************************************************
6
+ *   Written By Marcio Teixeira 2019 - Aleph Objects, Inc.                  *
7
+ *                                                                          *
8
+ *   This program is free software: you can redistribute it and/or modify   *
9
+ *   it under the terms of the GNU General Public License as published by   *
10
+ *   the Free Software Foundation, either version 3 of the License, or      *
11
+ *   (at your option) any later version.                                    *
12
+ *                                                                          *
13
+ *   This program is distributed in the hope that it will be useful,        *
14
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU General Public License for more details.                           *
17
+ *                                                                          *
18
+ *   To view a copy of the GNU General Public License, go to the following  *
19
+ *   location: <http://www.gnu.org/licenses/>.                              *
20
+ ****************************************************************************/
21
+
22
+#pragma once
23
+
24
+#include "language_en.h"
25
+#include "language_de.h"
26
+#include "language_fr.h"

+ 17
- 6
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/about_screen.cpp View File

49
       #ifdef LULZBOT_LCD_MACHINE_NAME
49
       #ifdef LULZBOT_LCD_MACHINE_NAME
50
       LULZBOT_LCD_MACHINE_NAME
50
       LULZBOT_LCD_MACHINE_NAME
51
       #else
51
       #else
52
-      "Color Touch Panel"
52
+      GET_TEXTF(COLOR_TOUCH_PANEL)
53
       #endif
53
       #endif
54
     ), OPT_CENTER, font_xlarge);
54
     ), OPT_CENTER, font_xlarge);
55
 
55
 
56
+  #ifdef LULZBOT_LCD_TOOLHEAD_NAME
57
+   char about_str[
58
+     strlen_P(GET_TEXT(FIRMWARE_FOR_TOOLHEAD)) +
59
+     strlen_P(LULZBOT_LCD_TOOLHEAD_NAME) +
60
+     strlen_P(GET_TEXT(ABOUT_ALEPH_OBJECTS)) + 1];
61
+
62
+   sprintf_P(about_str, GET_TEXT(FIRMWARE_FOR_TOOLHEAD), LULZBOT_LCD_TOOLHEAD_NAME);
63
+   strcat_P(about_str,  GET_TEXT(ABOUT_ALEPH_OBJECTS));
64
+  #endif
65
+
56
   cmd.tag(2);
66
   cmd.tag(2);
57
-  draw_text_box(cmd, BTN_POS(1,3), BTN_SIZE(4,3), F(
67
+  draw_text_box(cmd, BTN_POS(1,3), BTN_SIZE(4,3),
58
       #ifdef LULZBOT_LCD_TOOLHEAD_NAME
68
       #ifdef LULZBOT_LCD_TOOLHEAD_NAME
59
-        "Firmware for toolhead:\n" LULZBOT_LCD_TOOLHEAD_NAME "\n\n"
69
+        about_str
70
+      #else
71
+        GET_TEXTF(ABOUT_ALEPH_OBJECTS)
60
       #endif
72
       #endif
61
-      "(C) 2019 Aleph Objects, Inc.\n\nwww.lulzbot.com"
62
-  ), OPT_CENTER, font_medium);
73
+  , OPT_CENTER, font_medium);
63
 
74
 
64
   cmd.tag(0);
75
   cmd.tag(0);
65
   draw_text_box(cmd, BTN_POS(1,6), BTN_SIZE(4,2), progmem_str(getFirmwareName_str()), OPT_CENTER, font_medium);
76
   draw_text_box(cmd, BTN_POS(1,6), BTN_SIZE(4,2), progmem_str(getFirmwareName_str()), OPT_CENTER, font_medium);
66
 
77
 
67
-  cmd.font(font_medium).colors(action_btn).tag(1).button(BTN_POS(2,8), BTN_SIZE(2,1), F("Okay"));
78
+  cmd.font(font_medium).colors(action_btn).tag(1).button(BTN_POS(2,8), BTN_SIZE(2,1), GET_TEXTF(OKAY));
68
 }
79
 }
69
 
80
 
70
 bool AboutScreen::onTouchEnd(uint8_t tag) {
81
 bool AboutScreen::onTouchEnd(uint8_t tag) {

+ 32
- 32
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/advanced_settings_menu.cpp View File

49
       #else
49
       #else
50
         .enabled(0)
50
         .enabled(0)
51
       #endif
51
       #endif
52
-      .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), F("Z Offset "))
52
+      .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXTF(ZPROBE_ZOFFSET))
53
       .enabled(1)
53
       .enabled(1)
54
-      .tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), F("Steps/mm"))
54
+      .tag(3) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(STEPS_PER_MM))
55
       #if HAS_TRINAMIC
55
       #if HAS_TRINAMIC
56
         .enabled(1)
56
         .enabled(1)
57
       #else
57
       #else
58
         .enabled(0)
58
         .enabled(0)
59
       #endif
59
       #endif
60
-      .tag(13).button( BTN_POS(1,5), BTN_SIZE(1,1), F("Motor mA"))
60
+      .tag(13).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(MOTOR_CURRENT))
61
       #if HAS_TRINAMIC
61
       #if HAS_TRINAMIC
62
         .enabled(1)
62
         .enabled(1)
63
       #else
63
       #else
64
         .enabled(0)
64
         .enabled(0)
65
       #endif
65
       #endif
66
-      .tag(14).button( BTN_POS(1,4), BTN_SIZE(1,1), F("Bump Sense"))
66
+      .tag(14).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(HOME_SENSE))
67
       #if HOTENDS > 1
67
       #if HOTENDS > 1
68
       .enabled(1)
68
       .enabled(1)
69
       #else
69
       #else
70
       .enabled(0)
70
       .enabled(0)
71
       #endif
71
       #endif
72
-      .tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), F("Nozzle Offset"))
72
+      .tag(4) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(TOOL_OFFSETS))
73
       #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
73
       #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
74
       .enabled(1)
74
       .enabled(1)
75
       #else
75
       #else
76
       .enabled(0)
76
       .enabled(0)
77
       #endif
77
       #endif
78
-      .tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), F("Filament"))
79
-      .tag(12).button( BTN_POS(1,6), BTN_SIZE(1,1), F("Endstops"))
80
-      .tag(15).button( BTN_POS(2,6), BTN_SIZE(1,1), F("Display"))
81
-      .tag(9) .button( BTN_POS(1,7), BTN_SIZE(2,1), F("Interface Settings"))
82
-      .tag(10).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Restore Factory Defaults"))
83
-      .tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), F("Velocity "))
84
-      .tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), F("Acceleration"))
78
+      .tag(11).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXTF(FILAMENT))
79
+      .tag(12).button( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXTF(ENDSTOPS))
80
+      .tag(15).button( BTN_POS(2,6), BTN_SIZE(1,1), GET_TEXTF(DISPLAY_MENU))
81
+      .tag(9) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
82
+      .tag(10).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(RESTORE_DEFAULTS))
83
+      .tag(5) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(VELOCITY))
84
+      .tag(6) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(ACCELERATION))
85
       #if ENABLED(JUNCTION_DEVIATION)
85
       #if ENABLED(JUNCTION_DEVIATION)
86
-      .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Junc Dev"))
86
+      .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(JUNCTION_DEVIATION))
87
       #else
87
       #else
88
-      .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Jerk"))
88
+      .tag(7) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(JERK))
89
       #endif
89
       #endif
90
       #if ENABLED(BACKLASH_GCODE)
90
       #if ENABLED(BACKLASH_GCODE)
91
       .enabled(1)
91
       .enabled(1)
92
       #else
92
       #else
93
       .enabled(0)
93
       .enabled(0)
94
       #endif
94
       #endif
95
-      .tag(8).button( BTN_POS(2,5), BTN_SIZE(1,1), F("Backlash"))
95
+      .tag(8).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXTF(BACKLASH))
96
       .colors(action_btn)
96
       .colors(action_btn)
97
-      .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), F("Back"));
97
+      .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXTF(BACK));
98
       #undef GRID_COLS
98
       #undef GRID_COLS
99
       #undef GRID_ROWS
99
       #undef GRID_ROWS
100
     #else
100
     #else
105
       #else
105
       #else
106
         .enabled(0)
106
         .enabled(0)
107
       #endif
107
       #endif
108
-      .tag(2) .button( BTN_POS(1,1),  BTN_SIZE(1,2), F("Z Offset "))
108
+      .tag(2) .button( BTN_POS(1,1),  BTN_SIZE(1,2), GET_TEXTF(ZPROBE_ZOFFSET))
109
       .enabled(1)
109
       .enabled(1)
110
-      .tag(3) .button( BTN_POS(2,1),  BTN_SIZE(1,1), F("Steps/mm"))
110
+      .tag(3) .button( BTN_POS(2,1),  BTN_SIZE(1,1), GET_TEXTF(STEPS_PER_MM))
111
       #if HAS_TRINAMIC
111
       #if HAS_TRINAMIC
112
         .enabled(1)
112
         .enabled(1)
113
       #else
113
       #else
114
         .enabled(0)
114
         .enabled(0)
115
       #endif
115
       #endif
116
-      .tag(13).button( BTN_POS(3,1), BTN_SIZE(1,1), F("Motor mA"))
116
+      .tag(13).button( BTN_POS(3,1), BTN_SIZE(1,1), GET_TEXTF(MOTOR_CURRENT))
117
       #if HAS_TRINAMIC
117
       #if HAS_TRINAMIC
118
         .enabled(1)
118
         .enabled(1)
119
       #else
119
       #else
120
         .enabled(0)
120
         .enabled(0)
121
       #endif
121
       #endif
122
-      .tag(14).button( BTN_POS(3,2), BTN_SIZE(1,1), F("Bump Sense"))
122
+      .tag(14).button( BTN_POS(3,2), BTN_SIZE(1,1), GET_TEXTF(HOME_SENSE))
123
       #if ENABLED(BACKLASH_GCODE)
123
       #if ENABLED(BACKLASH_GCODE)
124
       .enabled(1)
124
       .enabled(1)
125
       #else
125
       #else
126
       .enabled(0)
126
       .enabled(0)
127
       #endif
127
       #endif
128
-      .tag(8).button( BTN_POS(3,3),  BTN_SIZE(1,1), F("Backlash"))
128
+      .tag(8).button( BTN_POS(3,3),  BTN_SIZE(1,1), GET_TEXTF(BACKLASH))
129
       #if HOTENDS > 1
129
       #if HOTENDS > 1
130
       .enabled(1)
130
       .enabled(1)
131
       #else
131
       #else
132
       .enabled(0)
132
       .enabled(0)
133
       #endif
133
       #endif
134
-      .tag(4) .button( BTN_POS(1,3),  BTN_SIZE(1,1), F("Nozzle Offsets"))
135
-      .tag(12).button( BTN_POS(3,4),  BTN_SIZE(1,1), F("Endstops"))
136
-      .tag(5) .button( BTN_POS(2,2),  BTN_SIZE(1,1), F("Velocity "))
137
-      .tag(6) .button( BTN_POS(2,3),  BTN_SIZE(1,1), F("Acceleration"))
134
+      .tag(4) .button( BTN_POS(1,3),  BTN_SIZE(1,1), GET_TEXTF(TOOL_OFFSETS))
135
+      .tag(12).button( BTN_POS(3,4),  BTN_SIZE(1,1), GET_TEXTF(ENDSTOPS))
136
+      .tag(5) .button( BTN_POS(2,2),  BTN_SIZE(1,1), GET_TEXTF(VELOCITY))
137
+      .tag(6) .button( BTN_POS(2,3),  BTN_SIZE(1,1), GET_TEXTF(ACCELERATION))
138
       #if ENABLED(JUNCTION_DEVIATION)
138
       #if ENABLED(JUNCTION_DEVIATION)
139
-      .tag(7) .button( BTN_POS(2,4),  BTN_SIZE(1,1), F("Junc Dev"))
139
+      .tag(7) .button( BTN_POS(2,4),  BTN_SIZE(1,1), GET_TEXTF(JUNCTION_DEVIATION))
140
       #else
140
       #else
141
-      .tag(7) .button( BTN_POS(2,4),  BTN_SIZE(1,1), F("Jerk"))
141
+      .tag(7) .button( BTN_POS(2,4),  BTN_SIZE(1,1), GET_TEXTF(JERK))
142
       #endif
142
       #endif
143
-      .tag(11).button( BTN_POS(1,4),  BTN_SIZE(1,1), F("Filament"))
144
-      .tag(15).button( BTN_POS(3,5),  BTN_SIZE(1,1), F("Display"))
145
-      .tag(9) .button( BTN_POS(1,5),  BTN_SIZE(2,1), F("Interface Settings"))
146
-      .tag(10).button( BTN_POS(1,6),  BTN_SIZE(2,1), F("Restore Defaults"))
143
+      .tag(11).button( BTN_POS(1,4),  BTN_SIZE(1,1), GET_TEXTF(FILAMENT))
144
+      .tag(15).button( BTN_POS(3,5),  BTN_SIZE(1,1), GET_TEXTF(DISPLAY_MENU))
145
+      .tag(9) .button( BTN_POS(1,5),  BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
146
+      .tag(10).button( BTN_POS(1,6),  BTN_SIZE(2,1), GET_TEXTF(RESTORE_DEFAULTS))
147
       .colors(action_btn)
147
       .colors(action_btn)
148
-      .tag(1) .button( BTN_POS(3,6),  BTN_SIZE(1,1), F("Back"));
148
+      .tag(1) .button( BTN_POS(3,6),  BTN_SIZE(1,1), GET_TEXTF(BACK));
149
     #endif
149
     #endif
150
   }
150
   }
151
 }
151
 }

+ 9
- 9
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/backlash_compensation_screen.cpp View File

32
 
32
 
33
 void BacklashCompensationScreen::onRedraw(draw_mode_t what) {
33
 void BacklashCompensationScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
-  w.precision(2).units(PSTR("mm"));
36
-  w.heading(                  PSTR("Axis Backlash"));
37
-  w.color(x_axis).adjuster(2, PSTR("X:"), getAxisBacklash_mm(X));
38
-  w.color(y_axis).adjuster(4, PSTR("Y:"), getAxisBacklash_mm(Y));
39
-  w.color(z_axis).adjuster(6, PSTR("Z:"), getAxisBacklash_mm(Z));
35
+  w.precision(2).units(       GET_TEXTF(UNITS_MM));
36
+  w.heading(                  GET_TEXTF(BACKLASH));
37
+  w.color(x_axis).adjuster(2, GET_TEXTF(AXIS_X), getAxisBacklash_mm(X));
38
+  w.color(y_axis).adjuster(4, GET_TEXTF(AXIS_Y), getAxisBacklash_mm(Y));
39
+  w.color(z_axis).adjuster(6, GET_TEXTF(AXIS_Z), getAxisBacklash_mm(Z));
40
   #if ENABLED(CALIBRATION_GCODE)
40
   #if ENABLED(CALIBRATION_GCODE)
41
-  w.button(12, PSTR("Measure automatically"));
41
+  w.button(12, GET_TEXTF(MEASURE_AUTOMATICALLY));
42
   #endif
42
   #endif
43
-  w.color(other).adjuster(8,  PSTR("Smoothing:"), getBacklashSmoothing_mm());
44
-  w.precision(0).units(PSTR("%"))
45
-                .adjuster(10, PSTR("Correction:"), getBacklashCorrection_percent());
43
+  w.color(other).adjuster(8,  GET_TEXTF(SMOOTHING), getBacklashSmoothing_mm());
44
+  w.precision(0).units(GET_TEXTF(UNITS_PERCENT))
45
+                .adjuster(10, GET_TEXTF(CORRECTION), getBacklashCorrection_percent());
46
   w.precision(2).increments();
46
   w.precision(2).increments();
47
 }
47
 }
48
 
48
 

+ 28
- 28
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/base_numeric_adjustment_screen.cpp View File

50
     cmd.font(font_medium)
50
     cmd.font(font_medium)
51
        .colors(action_btn)
51
        .colors(action_btn)
52
     #ifdef TOUCH_UI_PORTRAIT
52
     #ifdef TOUCH_UI_PORTRAIT
53
-       .tag(1).button( BTN_POS(1,10), BTN_SIZE(13,1), F("Back"))
53
+       .tag(1).button( BTN_POS(1,10), BTN_SIZE(13,1), GET_TEXTF(BACK))
54
     #else
54
     #else
55
-       .tag(1).button( BTN_POS(15,7), BTN_SIZE(4,1),  F("Back"))
55
+       .tag(1).button( BTN_POS(15,7), BTN_SIZE(4,1),  GET_TEXTF(BACK))
56
     #endif
56
     #endif
57
        .colors(normal_btn);
57
        .colors(normal_btn);
58
   }
58
   }
59
 
59
 
60
   _line = 1;
60
   _line = 1;
61
-  _units = PSTR("");
61
+  _units = F("");
62
 }
62
 }
63
 
63
 
64
 BaseNumericAdjustmentScreen::widgets_t &BaseNumericAdjustmentScreen::widgets_t::precision(uint8_t decimals, precision_default_t initial) {
64
 BaseNumericAdjustmentScreen::widgets_t &BaseNumericAdjustmentScreen::widgets_t::precision(uint8_t decimals, precision_default_t initial) {
69
   return *this;
69
   return *this;
70
 }
70
 }
71
 
71
 
72
-void BaseNumericAdjustmentScreen::widgets_t::heading(const char *label) {
72
+void BaseNumericAdjustmentScreen::widgets_t::heading(progmem_str label) {
73
   CommandProcessor cmd;
73
   CommandProcessor cmd;
74
   cmd.font(font_medium).cmd(COLOR_RGB(bg_text_enabled));
74
   cmd.font(font_medium).cmd(COLOR_RGB(bg_text_enabled));
75
   if (_what & BACKGROUND) {
75
   if (_what & BACKGROUND) {
76
     #ifdef TOUCH_UI_PORTRAIT
76
     #ifdef TOUCH_UI_PORTRAIT
77
-      cmd.tag(0).fgcolor(bg_color).button( BTN_POS(1, _line), BTN_SIZE(12,1), progmem_str(label), OPT_FLAT);
77
+      cmd.tag(0).fgcolor(bg_color).button( BTN_POS(1, _line), BTN_SIZE(12,1), label, OPT_FLAT);
78
     #else
78
     #else
79
-      cmd.tag(0).fgcolor(bg_color).button( BTN_POS(5, _line), BTN_SIZE(8,1),  progmem_str(label), OPT_FLAT);
79
+      cmd.tag(0).fgcolor(bg_color).button( BTN_POS(5, _line), BTN_SIZE(8,1),  label, OPT_FLAT);
80
     #endif
80
     #endif
81
   }
81
   }
82
 
82
 
140
     cmd.fgcolor(bg_color)
140
     cmd.fgcolor(bg_color)
141
        .tag(0)
141
        .tag(0)
142
     #ifdef TOUCH_UI_PORTRAIT
142
     #ifdef TOUCH_UI_PORTRAIT
143
-       .font(font_small).button( BTN_POS(1, _line),  BTN_SIZE(4,1), F("Increment:"), OPT_FLAT);
143
+       .font(font_small).button( BTN_POS(1, _line),  BTN_SIZE(4,1), GET_TEXTF(INCREMENT), OPT_FLAT);
144
     #else
144
     #else
145
-       .font(font_medium).button( BTN_POS(15,1),     BTN_SIZE(4,1), F("Increment:"), OPT_FLAT);
145
+       .font(font_medium).button( BTN_POS(15,1),     BTN_SIZE(4,1), GET_TEXTF(INCREMENT), OPT_FLAT);
146
     #endif
146
     #endif
147
   }
147
   }
148
 
148
 
157
   #endif
157
   #endif
158
 }
158
 }
159
 
159
 
160
-void BaseNumericAdjustmentScreen::widgets_t::adjuster_sram_val(uint8_t tag, const char *label, const char *value, bool is_enabled) {
160
+void BaseNumericAdjustmentScreen::widgets_t::adjuster_sram_val(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
161
   CommandProcessor cmd;
161
   CommandProcessor cmd;
162
 
162
 
163
   if (_what & BACKGROUND) {
163
   if (_what & BACKGROUND) {
179
   _line++;
179
   _line++;
180
 }
180
 }
181
 
181
 
182
-void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, const char *label, const char *value, bool is_enabled) {
182
+void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
183
   if (_what & BACKGROUND) {
183
   if (_what & BACKGROUND) {
184
     adjuster_sram_val(tag, label, nullptr);
184
     adjuster_sram_val(tag, label, nullptr);
185
   }
185
   }
191
   }
191
   }
192
 }
192
 }
193
 
193
 
194
-void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, const char *label, float value, bool is_enabled) {
194
+void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, progmem_str label, float value, bool is_enabled) {
195
   if (_what & BACKGROUND) {
195
   if (_what & BACKGROUND) {
196
     adjuster_sram_val(tag, label, nullptr);
196
     adjuster_sram_val(tag, label, nullptr);
197
   }
197
   }
205
   }
205
   }
206
 }
206
 }
207
 
207
 
208
-void BaseNumericAdjustmentScreen::widgets_t::button(uint8_t tag, const char *label, bool is_enabled) {
208
+void BaseNumericAdjustmentScreen::widgets_t::button(uint8_t tag, progmem_str label, bool is_enabled) {
209
   if (_what & FOREGROUND) {
209
   if (_what & FOREGROUND) {
210
     CommandProcessor cmd;
210
     CommandProcessor cmd;
211
     cmd.colors(normal_btn)
211
     cmd.colors(normal_btn)
216
     #else
216
     #else
217
        .font(font_medium)
217
        .font(font_medium)
218
     #endif
218
     #endif
219
-    .button(BTN_POS(5,_line), BTN_SIZE(9,1), progmem_str(label));
219
+    .button(BTN_POS(5,_line), BTN_SIZE(9,1), label);
220
   }
220
   }
221
 
221
 
222
   _line++;
222
   _line++;
223
 }
223
 }
224
 
224
 
225
-void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, const char *label, const char *value, bool is_enabled) {
225
+void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
226
   CommandProcessor cmd;
226
   CommandProcessor cmd;
227
 
227
 
228
   if (_what & BACKGROUND) {
228
   if (_what & BACKGROUND) {
230
        .font(font_small)
230
        .font(font_small)
231
        .cmd(COLOR_RGB(bg_text_enabled))
231
        .cmd(COLOR_RGB(bg_text_enabled))
232
        .fgcolor(_color).tag(0).button( BTN_POS(5,_line), BTN_SIZE(9,1), F(""),               OPT_FLAT)
232
        .fgcolor(_color).tag(0).button( BTN_POS(5,_line), BTN_SIZE(9,1), F(""),               OPT_FLAT)
233
-       .fgcolor(bg_color) .tag(0).button( BTN_POS(1,_line), BTN_SIZE(4,1), (progmem_str) label, OPT_FLAT);
233
+       .fgcolor(bg_color) .tag(0).button( BTN_POS(1,_line), BTN_SIZE(4,1), label, OPT_FLAT);
234
   }
234
   }
235
 
235
 
236
   if (_what & FOREGROUND) {
236
   if (_what & FOREGROUND) {
242
   _line++;
242
   _line++;
243
 }
243
 }
244
 
244
 
245
-void BaseNumericAdjustmentScreen::widgets_t::two_buttons(uint8_t tag1, const char *label1, uint8_t tag2, const char *label2, bool is_enabled) {
245
+void BaseNumericAdjustmentScreen::widgets_t::two_buttons(uint8_t tag1, progmem_str label1, uint8_t tag2, progmem_str label2, bool is_enabled) {
246
   if (_what & FOREGROUND) {
246
   if (_what & FOREGROUND) {
247
     CommandProcessor cmd;
247
     CommandProcessor cmd;
248
     cmd.enabled(is_enabled)
248
     cmd.enabled(is_enabled)
251
     #else
251
     #else
252
        .font(font_medium)
252
        .font(font_medium)
253
     #endif
253
     #endif
254
-    .tag(is_enabled ? tag1: 0).button(BTN_POS(5,_line),   BTN_SIZE(4.5,1), progmem_str(label1))
255
-    .tag(is_enabled ? tag2: 0).button(BTN_POS(9.5,_line), BTN_SIZE(4.5,1), progmem_str(label2));
254
+    .tag(is_enabled ? tag1: 0).button(BTN_POS(5,_line),   BTN_SIZE(4.5,1), label1)
255
+    .tag(is_enabled ? tag2: 0).button(BTN_POS(9.5,_line), BTN_SIZE(4.5,1), label2);
256
   }
256
   }
257
 
257
 
258
   _line++;
258
   _line++;
259
 }
259
 }
260
 
260
 
261
-void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, const char *label, const char *text, bool value, bool is_enabled) {
261
+void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, progmem_str label, bool value, bool is_enabled) {
262
   if (_what & BACKGROUND) {
262
   if (_what & BACKGROUND) {
263
     CommandProcessor cmd;
263
     CommandProcessor cmd;
264
     cmd.fgcolor(bg_color)
264
     cmd.fgcolor(bg_color)
265
        .tag(0)
265
        .tag(0)
266
        .font(font_small)
266
        .font(font_small)
267
     #ifdef TOUCH_UI_PORTRAIT
267
     #ifdef TOUCH_UI_PORTRAIT
268
-       .button( BTN_POS(1, _line), BTN_SIZE( 8,1), progmem_str(label), OPT_FLAT);
268
+       .button( BTN_POS(1, _line), BTN_SIZE( 8,1), label, OPT_FLAT);
269
     #else
269
     #else
270
-       .button( BTN_POS(1, _line), BTN_SIZE(10,1), progmem_str(label), OPT_FLAT);
270
+       .button( BTN_POS(1, _line), BTN_SIZE(10,1), label, OPT_FLAT);
271
     #endif
271
     #endif
272
   }
272
   }
273
 
273
 
278
        .font(font_small)
278
        .font(font_small)
279
        .colors(ui_toggle)
279
        .colors(ui_toggle)
280
     #ifdef TOUCH_UI_PORTRAIT
280
     #ifdef TOUCH_UI_PORTRAIT
281
-      .toggle(BTN_POS( 9,_line), BTN_SIZE(5,1), progmem_str(text), value);
281
+      .toggle2(BTN_POS( 9,_line), BTN_SIZE(5,1), GET_TEXTF(NO), GET_TEXTF(YES), value);
282
     #else
282
     #else
283
-      .toggle(BTN_POS(10,_line), BTN_SIZE(4,1), progmem_str(text), value);
283
+      .toggle2(BTN_POS(10,_line), BTN_SIZE(4,1), GET_TEXTF(NO), GET_TEXTF(YES), value);
284
     #endif
284
     #endif
285
   }
285
   }
286
 
286
 
293
     cmd.fgcolor(bg_color)
293
     cmd.fgcolor(bg_color)
294
        .tag(0)
294
        .tag(0)
295
        .font(font_small)
295
        .font(font_small)
296
-       .button( BTN_POS(1, _line),  BTN_SIZE(4,1), F("Home:"), OPT_FLAT);
296
+       .button( BTN_POS(1, _line),  BTN_SIZE(4,1), GET_TEXTF(HOME), OPT_FLAT);
297
   }
297
   }
298
 
298
 
299
   if (_what & FOREGROUND) {
299
   if (_what & FOREGROUND) {
304
     #else
304
     #else
305
        .font(font_medium)
305
        .font(font_medium)
306
     #endif
306
     #endif
307
-       .tag(tag+0).button(BTN_POS(5,_line),  BTN_SIZE(2,1), F("X"))
308
-       .tag(tag+1).button(BTN_POS(7,_line),  BTN_SIZE(2,1), F("Y"))
309
-       .tag(tag+2).button(BTN_POS(9,_line),  BTN_SIZE(2,1), F("Z"))
310
-       .tag(tag+3).button(BTN_POS(11,_line), BTN_SIZE(3,1), F("All"));
307
+       .tag(tag+0).button(BTN_POS(5,_line),  BTN_SIZE(2,1), GET_TEXTF(AXIS_X))
308
+       .tag(tag+1).button(BTN_POS(7,_line),  BTN_SIZE(2,1), GET_TEXTF(AXIS_Y))
309
+       .tag(tag+2).button(BTN_POS(9,_line),  BTN_SIZE(2,1), GET_TEXTF(AXIS_Z))
310
+       .tag(tag+3).button(BTN_POS(11,_line), BTN_SIZE(3,1), GET_TEXTF(AXIS_ALL));
311
   }
311
   }
312
 
312
 
313
   _line++;
313
   _line++;

+ 15
- 15
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_advanced_settings.cpp View File

43
     #define GRID_ROWS 9
43
     #define GRID_ROWS 9
44
     #define GRID_COLS 2
44
     #define GRID_COLS 2
45
 
45
 
46
-      .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), F("Display"))
46
+      .tag(2) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXTF(DISPLAY_MENU))
47
       #if HAS_TRINAMIC
47
       #if HAS_TRINAMIC
48
        .enabled(1)
48
        .enabled(1)
49
       #else
49
       #else
50
        .enabled(0)
50
        .enabled(0)
51
       #endif
51
       #endif
52
-      .tag(3) .button( BTN_POS(1,2), BTN_SIZE(1,1), F("Motor mA"))
52
+      .tag(3) .button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(MOTOR_CURRENT))
53
       #if HAS_TRINAMIC
53
       #if HAS_TRINAMIC
54
        .enabled(1)
54
        .enabled(1)
55
       #else
55
       #else
56
        .enabled(0)
56
        .enabled(0)
57
       #endif
57
       #endif
58
-      .tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), F("Bump Sense"))
59
-      .tag(5) .button( BTN_POS(1,4), BTN_SIZE(1,1), F("Endstops"))
58
+      .tag(4) .button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXTF(BUMP_SENSE))
59
+      .tag(5) .button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(ENDSTOPS))
60
       #if HOTENDS > 1
60
       #if HOTENDS > 1
61
       .enabled(1)
61
       .enabled(1)
62
       #else
62
       #else
63
       .enabled(0)
63
       .enabled(0)
64
       #endif
64
       #endif
65
-      .tag(6) .button( BTN_POS(1,5), BTN_SIZE(1,1), F("Nozzle Offset"))
65
+      .tag(6) .button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(NOZZLE_OFFSETS))
66
 
66
 
67
 
67
 
68
-      .tag(7) .button( BTN_POS(2,1), BTN_SIZE(1,1), F("Steps/mm"))
69
-      .tag(8) .button( BTN_POS(2,2), BTN_SIZE(1,1), F("Velocity "))
70
-      .tag(9) .button( BTN_POS(2,3), BTN_SIZE(1,1), F("Acceleration"))
68
+      .tag(7) .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(STEPS_PER_MM))
69
+      .tag(8) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(MAX_VELOCITY))
70
+      .tag(9) .button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(MAX_ACCELERATION))
71
       #if ENABLED(JUNCTION_DEVIATION)
71
       #if ENABLED(JUNCTION_DEVIATION)
72
-        .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Junc Dev"))
72
+        .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(JUNCTION_DEVIATION))
73
       #else
73
       #else
74
-        .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Jerk"))
74
+        .tag(10) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(MAX_JERK))
75
       #endif
75
       #endif
76
       #if ENABLED(BACKLASH_GCODE)
76
       #if ENABLED(BACKLASH_GCODE)
77
       .enabled(1)
77
       .enabled(1)
78
       #else
78
       #else
79
       .enabled(0)
79
       .enabled(0)
80
       #endif
80
       #endif
81
-      .tag(11) .button( BTN_POS(2,5), BTN_SIZE(1,1), F("Backlash"))
81
+      .tag(11) .button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXTF(BACKLASH))
82
       #if ENABLED(LIN_ADVANCE)
82
       #if ENABLED(LIN_ADVANCE)
83
       .enabled(1)
83
       .enabled(1)
84
       #else
84
       #else
85
       .enabled(0)
85
       .enabled(0)
86
       #endif
86
       #endif
87
-      .tag(12) .button( BTN_POS(1,6), BTN_SIZE(2,1), F("Linear Advance"))
88
-      .tag(13) .button( BTN_POS(1,7), BTN_SIZE(2,1), F("Interface Settings"))
89
-      .tag(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), F("Restore Factory Defaults"))
87
+      .tag(12) .button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(LINEAR_ADVANCE))
88
+      .tag(13) .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
89
+      .tag(14) .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(RESTORE_FAILSAFE))
90
       .colors(action_btn)
90
       .colors(action_btn)
91
-      .tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), F("Back"));
91
+      .tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXTF(BACK));
92
     #undef GRID_COLS
92
     #undef GRID_COLS
93
     #undef GRID_ROWS
93
     #undef GRID_ROWS
94
   }
94
   }

+ 1
- 1
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_e.cpp View File

29
 using namespace FTDI;
29
 using namespace FTDI;
30
 
30
 
31
 void BioConfirmHomeE::onRedraw(draw_mode_t) {
31
 void BioConfirmHomeE::onRedraw(draw_mode_t) {
32
-  drawMessage(F("About to re-home plunger and auto-level. Remove syringe prior to proceeding.\n\nContinue?"));
32
+  drawMessage(GET_TEXTF(HOMING_WARNING));
33
   drawYesNoButtons(1);
33
   drawYesNoButtons(1);
34
 }
34
 }
35
 
35
 

+ 1
- 1
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_confirm_home_xyz.cpp View File

29
 using namespace FTDI;
29
 using namespace FTDI;
30
 
30
 
31
 void BioConfirmHomeXYZ::onRedraw(draw_mode_t) {
31
 void BioConfirmHomeXYZ::onRedraw(draw_mode_t) {
32
-  drawMessage(F("About to home to loading position.\nEnsure the top and the bed of the printer are clear.\n\nContinue?"));
32
+  drawMessage(GET_TEXTF(LOADING_WARNING));
33
   drawYesNoButtons(1);
33
   drawYesNoButtons(1);
34
 }
34
 }
35
 
35
 

+ 8
- 8
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_main_menu.cpp View File

42
   if (what & FOREGROUND) {
42
   if (what & FOREGROUND) {
43
     CommandProcessor cmd;
43
     CommandProcessor cmd;
44
     cmd.cmd(COLOR_RGB(bg_text_enabled))
44
     cmd.cmd(COLOR_RGB(bg_text_enabled))
45
-       .font(font_large).text( BTN_POS(1,1), BTN_SIZE(2,1), F("Main Menu"))
45
+       .font(font_large).text( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(MAIN_MENU))
46
        .colors(normal_btn)
46
        .colors(normal_btn)
47
        .font(font_medium)
47
        .font(font_medium)
48
-       .tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), F("Load Syringe"))
49
-       .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), F("Unlock XY Axis"))
50
-       .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), F("Bed Temperature"))
51
-       .tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), F("Interface Settings"))
52
-       .tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), F("Advanced Settings"))
53
-       .tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), F("About Printer"))
48
+       .tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(LOAD_SYRINGE))
49
+       .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(UNLOCK_XY_AXIS))
50
+       .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(BED_TEMPERATURE))
51
+       .tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SETTINGS))
52
+       .tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(ADVANCED_SETTINGS))
53
+       .tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(ABOUT_PRINTER))
54
        .colors(action_btn)
54
        .colors(action_btn)
55
-       .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Back"));
55
+       .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(BACK));
56
   }
56
   }
57
 
57
 
58
   #undef GRID_COLS
58
   #undef GRID_COLS

+ 8
- 12
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_status_screen.cpp View File

91
        .cmd(COLOR_RGB(bg_text_enabled));
91
        .cmd(COLOR_RGB(bg_text_enabled));
92
 
92
 
93
     if (!isHeaterIdle(BED) && getTargetTemp_celsius(BED) > 0) {
93
     if (!isHeaterIdle(BED) && getTargetTemp_celsius(BED) > 0) {
94
-      sprintf_P(bed_str, PSTR("%-3d C"), ROUND(getTargetTemp_celsius(BED)));
94
+      sprintf_P(bed_str, F("%3d%S"), ROUND(getTargetTemp_celsius(BED), GET_TEXT(UNITS_C)));
95
       ui.bounds(POLY(target_temp), x, y, h, v);
95
       ui.bounds(POLY(target_temp), x, y, h, v);
96
       cmd.text(x, y, h, v, bed_str);
96
       cmd.text(x, y, h, v, bed_str);
97
     }
97
     }
98
 
98
 
99
-    sprintf_P(bed_str, PSTR("%-3d C"), ROUND(getActualTemp_celsius(BED)));
99
+    sprintf_P(bed_str, F("%3d%S"), ROUND(getActualTemp_celsius(BED)), GET_TEXT(UNITS_C));
100
     ui.bounds(POLY(actual_temp), x, y, h, v);
100
     ui.bounds(POLY(actual_temp), x, y, h, v);
101
     cmd.text(x, y, h, v, bed_str);
101
     cmd.text(x, y, h, v, bed_str);
102
   }
102
   }
175
 
175
 
176
     ui.bounds(POLY(fine_label), x, y, h, v);
176
     ui.bounds(POLY(fine_label), x, y, h, v);
177
     cmd.cmd(COLOR_RGB(bg_text_enabled))
177
     cmd.cmd(COLOR_RGB(bg_text_enabled))
178
-       .text(x, y, h, v, F("Fine motion:"));
178
+       .text(x, y, h, v, GET_TEXTF(FINE_MOTION));
179
   }
179
   }
180
 
180
 
181
   if (what & FOREGROUND) {
181
   if (what & FOREGROUND) {
182
     ui.bounds(POLY(fine_toggle), x, y, h, v);
182
     ui.bounds(POLY(fine_toggle), x, y, h, v);
183
     cmd.colors(ui_toggle)
183
     cmd.colors(ui_toggle)
184
-       .toggle(x, y, h, v, F("no\xFFyes"), fine_motion);
184
+       .toggle2(x, y, h, v, GET_TEXTF(NO), GET_TEXTF(YES), fine_motion);
185
   }
185
   }
186
 }
186
 }
187
 
187
 
226
      .colors(has_media ? action_btn : normal_btn)
226
      .colors(has_media ? action_btn : normal_btn)
227
      .tag(9).button(BTN_POS(1,9), BTN_SIZE(1,1),
227
      .tag(9).button(BTN_POS(1,9), BTN_SIZE(1,1),
228
         isPrintingFromMedia() ?
228
         isPrintingFromMedia() ?
229
-          F("Printing") :
230
-      #if ENABLED(USB_FLASH_DRIVE_SUPPORT)
229
+          GET_TEXTF(PRINTING) :
231
         #ifdef LULZBOT_MANUAL_USB_STARTUP
230
         #ifdef LULZBOT_MANUAL_USB_STARTUP
232
-        (Sd2Card::ready() ? F("USB Drive") : F("Enable USB"))
231
+        (Sd2Card::ready() ? GET_TEXTF(MEDIA) : GET_TEXTF(ENABLE_MEDIA))
233
         #else
232
         #else
234
-        F("USB Drive")
233
+        GET_TEXTF(MEDIA)
235
         #endif
234
         #endif
236
-      #else
237
-        F("SD Card")
238
-      #endif
239
       );
235
       );
240
 
236
 
241
   cmd.colors(!has_media ? action_btn : normal_btn).tag(10).button(BTN_POS(2,9), BTN_SIZE(1,1), F("Menu"));
237
   cmd.colors(!has_media ? action_btn : normal_btn).tag(10).button(BTN_POS(2,9), BTN_SIZE(1,1), F("Menu"));
282
     case 9:
278
     case 9:
283
       #if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
279
       #if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
284
       if (!Sd2Card::ready()) {
280
       if (!Sd2Card::ready()) {
285
-        StatusScreen::setStatusMessage(F("Insert USB drive..."));
281
+        StatusScreen::setStatusMessage(GET_TEXTF(INSERT_MEDIA));
286
         Sd2Card::usbStartup();
282
         Sd2Card::usbStartup();
287
       } else {
283
       } else {
288
         GOTO_SCREEN(FilesScreen);
284
         GOTO_SCREEN(FilesScreen);

+ 14
- 21
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/bio_tune_menu.cpp View File

38
        .font(font_medium);
38
        .font(font_medium);
39
   }
39
   }
40
 
40
 
41
-  #define GRID_ROWS 8
41
+  #define GRID_ROWS 7
42
   #define GRID_COLS 2
42
   #define GRID_COLS 2
43
 
43
 
44
   if (what & FOREGROUND) {
44
   if (what & FOREGROUND) {
45
     CommandProcessor cmd;
45
     CommandProcessor cmd;
46
     cmd.cmd(COLOR_RGB(bg_text_enabled))
46
     cmd.cmd(COLOR_RGB(bg_text_enabled))
47
-       .font(font_large).text  ( BTN_POS(1,1), BTN_SIZE(2,1), F("Print Menu"))
47
+       .font(font_large).text  ( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(PRINT_MENU))
48
        .colors(normal_btn)
48
        .colors(normal_btn)
49
        .font(font_medium)
49
        .font(font_medium)
50
-       .enabled(!isPrinting()).tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), isPrinting() ? F("Printing...") : F("Print Again"))
51
-       .enabled( isPrinting()).tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), F("Print Speed"))
52
-                              .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), F("Bed Temperature"))
50
+       .enabled( isPrinting()).tag(2).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(PRINT_SPEED))
51
+                              .tag(3).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(BED_TEMPERATURE))
53
         #if ENABLED(BABYSTEPPING)
52
         #if ENABLED(BABYSTEPPING)
54
           .enabled(true)
53
           .enabled(true)
55
         #else
54
         #else
56
           .enabled(false)
55
           .enabled(false)
57
         #endif
56
         #endif
58
-                              .tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), F("Nudge Nozzle"))
59
-       .enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), F("Load Syringe"))
60
-       .enabled(!isPrinting()).tag(7).button( BTN_POS(1,7), BTN_SIZE(2,1), F("Unlock XY Axis"))
61
-       .colors(action_btn)    .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Back"));
57
+                              .tag(4).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(NUDGE_NOZZLE))
58
+       .enabled(!isPrinting()).tag(5).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(LOAD_SYRINGE))
59
+       .enabled(!isPrinting()).tag(6).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(UNLOCK_XY_AXIS))
60
+       .colors(action_btn)    .tag(1).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(BACK));
62
   }
61
   }
63
   #undef GRID_COLS
62
   #undef GRID_COLS
64
   #undef GRID_ROWS
63
   #undef GRID_ROWS
66
 
65
 
67
 bool TuneMenu::onTouchEnd(uint8_t tag) {
66
 bool TuneMenu::onTouchEnd(uint8_t tag) {
68
   switch (tag) {
67
   switch (tag) {
69
-    case 1:  GOTO_PREVIOUS();                    break;
70
-    case 2: {
71
-      FileList files;
72
-      printFile(files.shortFilename());
73
-      GOTO_PREVIOUS();
74
-      break;
75
-    }
76
-    case 3: GOTO_SCREEN(FeedratePercentScreen); break;
77
-    case 4: GOTO_SCREEN(TemperatureScreen);     break;
78
-    case 5: GOTO_SCREEN(NudgeNozzleScreen);     break;
79
-    case 6: GOTO_SCREEN(BioConfirmHomeXYZ);     break;
80
-    case 7: StatusScreen::unlockMotors();       break;
68
+    case 1: GOTO_PREVIOUS();                    break;
69
+    case 2: GOTO_SCREEN(FeedratePercentScreen); break;
70
+    case 3: GOTO_SCREEN(TemperatureScreen);     break;
71
+    case 4: GOTO_SCREEN(NudgeNozzleScreen);     break;
72
+    case 5: GOTO_SCREEN(BioConfirmHomeXYZ);     break;
73
+    case 6: StatusScreen::unlockMotors();       break;
81
     default:
74
     default:
82
       return false;
75
       return false;
83
   }
76
   }

+ 5
- 1
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp View File

57
     // in case the display is borked.
57
     // in case the display is borked.
58
     InterfaceSettingsScreen::failSafeSettings();
58
     InterfaceSettingsScreen::failSafeSettings();
59
 
59
 
60
+    StatusScreen::loadBitmaps();
60
     GOTO_SCREEN(TouchCalibrationScreen);
61
     GOTO_SCREEN(TouchCalibrationScreen);
61
     current_screen.forget();
62
     current_screen.forget();
62
     PUSH_SCREEN(StatusScreen);
63
     PUSH_SCREEN(StatusScreen);
63
   } else {
64
   } else {
64
     if (!UIFlashStorage::is_valid()) {
65
     if (!UIFlashStorage::is_valid()) {
65
       StatusScreen::loadBitmaps();
66
       StatusScreen::loadBitmaps();
66
-      SpinnerDialogBox::show(F("Please wait..."));
67
+      SpinnerDialogBox::show(GET_TEXTF(PLEASE_WAIT));
67
       UIFlashStorage::format_flash();
68
       UIFlashStorage::format_flash();
68
       SpinnerDialogBox::hide();
69
       SpinnerDialogBox::hide();
69
     }
70
     }
82
       current_screen.forget();
83
       current_screen.forget();
83
       PUSH_SCREEN(StatusScreen);
84
       PUSH_SCREEN(StatusScreen);
84
       PUSH_SCREEN(BioConfirmHomeE);
85
       PUSH_SCREEN(BioConfirmHomeE);
86
+    #elif defined(TOUCH_UI_LANGUAGE_MENU)
87
+      StatusScreen::setStatusMessage(F(WELCOME_MSG));
88
+      GOTO_SCREEN(LanguageMenu);
85
     #else
89
     #else
86
       StatusScreen::setStatusMessage(F(WELCOME_MSG));
90
       StatusScreen::setStatusMessage(F(WELCOME_MSG));
87
       GOTO_SCREEN(StatusScreen);
91
       GOTO_SCREEN(StatusScreen);

+ 44
- 36
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/change_filament_screen.cpp View File

114
     #else
114
     #else
115
        .font(font_medium)
115
        .font(font_medium)
116
     #endif
116
     #endif
117
-       .text(BTN_POS(1,1), BTN_SIZE(2,1), F("Extruder Selection:"))
117
+       .text(BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(EXTRUDER_SELECTION))
118
     #ifdef TOUCH_UI_PORTRAIT
118
     #ifdef TOUCH_UI_PORTRAIT
119
-       .text(BTN_POS(1,7), BTN_SIZE(1,1), F("Current Temp:"))
119
+       .text(BTN_POS(1,7), BTN_SIZE(1,1), F(""))
120
     #else
120
     #else
121
-       .text(BTN_POS(3,1), BTN_SIZE(2,1), F("Current Temp:"))
121
+       .text(BTN_POS(3,1), BTN_SIZE(2,1), GET_TEXTF(CURRENT_TEMPERATURE))
122
        .font(font_small)
122
        .font(font_small)
123
     #endif
123
     #endif
124
-       .text(BTN_POS(1,3), BTN_SIZE(2,1), F("Removal Temp:"));
124
+       .text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(REMOVAL_TEMPERATURE));
125
     drawTempGradient(BTN_POS(1,4), BTN_SIZE(1,3));
125
     drawTempGradient(BTN_POS(1,4), BTN_SIZE(1,3));
126
   }
126
   }
127
 
127
 
128
   if (what & FOREGROUND) {
128
   if (what & FOREGROUND) {
129
     char e_str[15];
129
     char e_str[15];
130
 
130
 
131
-    const char *idle = PSTR("%-3d C / idle");
132
-    const char *not_idle = PSTR("%-3d / %-3d C");
133
-
134
-    sprintf_P(
135
-      e_str,
136
-      isHeaterIdle(getExtruder()) ? idle : not_idle,
137
-      ROUND(getActualTemp_celsius(getExtruder())),
138
-      ROUND(getTargetTemp_celsius(getExtruder()))
139
-    );
131
+      if (isHeaterIdle(getExtruder()))
132
+      sprintf_P(e_str, PSTR("%3d%S / %S"), ROUND(getActualTemp_celsius(getExtruder())), GET_TEXT(UNITS_C), GET_TEXT(TEMP_IDLE));
133
+    else
134
+      sprintf_P(e_str, PSTR("%3d / %3d%S"), ROUND(getActualTemp_celsius(getExtruder())), ROUND(getTargetTemp_celsius(getExtruder())), GET_TEXT(UNITS_C));
140
 
135
 
141
     const rgb_t tcol = getWarmColor(getActualTemp_celsius(getExtruder()), COOL_TEMP, LOW_TEMP, MED_TEMP, HIGH_TEMP);
136
     const rgb_t tcol = getWarmColor(getActualTemp_celsius(getExtruder()), COOL_TEMP, LOW_TEMP, MED_TEMP, HIGH_TEMP);
142
     cmd.cmd(COLOR_RGB(tcol))
137
     cmd.cmd(COLOR_RGB(tcol))
158
     const bool t_ok = getActualTemp_celsius(getExtruder()) > getSoftenTemp() - 10;
153
     const bool t_ok = getActualTemp_celsius(getExtruder()) > getSoftenTemp() - 10;
159
 
154
 
160
     if (screen_data.ChangeFilamentScreen.t_tag && !t_ok) {
155
     if (screen_data.ChangeFilamentScreen.t_tag && !t_ok) {
161
-      cmd.text(BTN_POS(1,6), BTN_SIZE(1,1), F("Heating..."));
156
+      cmd.text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXTF(HEATING));
162
     } else if (getActualTemp_celsius(getExtruder()) > 100) {
157
     } else if (getActualTemp_celsius(getExtruder()) > 100) {
163
       cmd.cmd(COLOR_RGB(0xFF0000))
158
       cmd.cmd(COLOR_RGB(0xFF0000))
164
-         .text(BTN_POS(1,4), BTN_SIZE(1,1), F("Caution:"))
159
+         .text(BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(CAUTION))
165
          .colors(normal_btn)
160
          .colors(normal_btn)
166
-         .text(BTN_POS(1,6), BTN_SIZE(1,1), F("Hot!"));
161
+         .text(BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXTF(HOT));
167
     }
162
     }
168
 
163
 
169
     #define TOG_STYLE(A) colors(A ? action_btn : normal_btn)
164
     #define TOG_STYLE(A) colors(A ? action_btn : normal_btn)
195
     const bool tog7 = screen_data.ChangeFilamentScreen.repeat_tag == 7;
190
     const bool tog7 = screen_data.ChangeFilamentScreen.repeat_tag == 7;
196
     const bool tog8 = screen_data.ChangeFilamentScreen.repeat_tag == 8;
191
     const bool tog8 = screen_data.ChangeFilamentScreen.repeat_tag == 8;
197
 
192
 
193
+
198
     #ifdef TOUCH_UI_PORTRAIT
194
     #ifdef TOUCH_UI_PORTRAIT
199
-      cmd.font(font_large)
195
+      cmd.font(font_large);
200
     #else
196
     #else
201
-      cmd.font(font_small)
197
+      cmd.font(font_small);
202
     #endif
198
     #endif
203
-       .tag(2) .TOG_STYLE(tog2) .button (BTN_POS(2,6), BTN_SIZE(1,1), F( STRINGIFY(LOW_TEMP)  "C (PLA)"))
204
-       .tag(3) .TOG_STYLE(tog3) .button (BTN_POS(2,5), BTN_SIZE(1,1), F( STRINGIFY(MED_TEMP)  "C (ABS)"))
205
-       .tag(4) .TOG_STYLE(tog4) .button (BTN_POS(2,4), BTN_SIZE(1,1), F( STRINGIFY(HIGH_TEMP) "C (High)"))
206
-       .colors(normal_btn)
199
+    {
200
+      char str[30];
201
+      sprintf_P(str, PSTR("%3d%S (%S)"), LOW_TEMP, GET_TEXT(UNITS_C), GET_TEXT(MATERIAL_PLA));
202
+      cmd.tag(2) .TOG_STYLE(tog2) .button (BTN_POS(2,6), BTN_SIZE(1,1), str);
203
+    }
204
+    {
205
+      char str[30];
206
+      sprintf_P(str, PSTR("%3d%S (%S)"), MED_TEMP, GET_TEXT(UNITS_C), GET_TEXT(MATERIAL_ABS));
207
+      cmd.tag(3) .TOG_STYLE(tog3) .button (BTN_POS(2,5), BTN_SIZE(1,1), str);
208
+    }
209
+    {
210
+      char str[30];
211
+      sprintf_P(str, PSTR("%3d%S (%S)"), HIGH_TEMP, GET_TEXT(UNITS_C), GET_TEXT(MATERIAL_HIGH_TEMP));
212
+      cmd.tag(4) .TOG_STYLE(tog4) .button (BTN_POS(2,4), BTN_SIZE(1,1), str);
213
+    }
214
+    cmd.colors(normal_btn)
207
 
215
 
208
     // Add tags to color gradient
216
     // Add tags to color gradient
209
     .cmd(COLOR_MASK(0,0,0,0))
217
     .cmd(COLOR_MASK(0,0,0,0))
215
     .cmd(COLOR_RGB(t_ok ? bg_text_enabled : bg_text_disabled))
223
     .cmd(COLOR_RGB(t_ok ? bg_text_enabled : bg_text_disabled))
216
     #ifdef TOUCH_UI_PORTRAIT
224
     #ifdef TOUCH_UI_PORTRAIT
217
        .font(font_large)
225
        .font(font_large)
218
-       .tag(0)                              .text   (BTN_POS(1,8),  BTN_SIZE(1,1), F("Unload"))
219
-                                            .text   (BTN_POS(2,8),  BTN_SIZE(1,1), F("Load/Extrude"))
220
-       .tag(5)                .enabled(t_ok).button (BTN_POS(1,9),  BTN_SIZE(1,1), F("Momentary"))
221
-       .tag(6)                .enabled(t_ok).button (BTN_POS(2,9),  BTN_SIZE(1,1), F("Momentary"))
222
-       .tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(1,10), BTN_SIZE(1,1), F("Continuous"))
223
-       .tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(2,10), BTN_SIZE(1,1), F("Continuous"))
224
-       .tag(1).colors(action_btn)           .button (BTN_POS(1,11), BTN_SIZE(2,1), F("Back"));
226
+       .tag(0)                              .text   (BTN_POS(1,8),  BTN_SIZE(1,1), GET_TEXTF(UNLOAD_FILAMENT))
227
+                                            .text   (BTN_POS(2,8),  BTN_SIZE(1,1), GET_TEXTF(LOAD_FILAMENT))
228
+       .tag(5)                .enabled(t_ok).button (BTN_POS(1,9),  BTN_SIZE(1,1), GET_TEXTF(MOMENTARY))
229
+       .tag(6)                .enabled(t_ok).button (BTN_POS(2,9),  BTN_SIZE(1,1), GET_TEXTF(MOMENTARY))
230
+       .tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(1,10), BTN_SIZE(1,1), GET_TEXTF(CONTINUOUS))
231
+       .tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(2,10), BTN_SIZE(1,1), GET_TEXTF(CONTINUOUS))
232
+       .tag(1).colors(action_btn)           .button (BTN_POS(1,11), BTN_SIZE(2,1), GET_TEXTF(BACK));
225
     #else
233
     #else
226
        .font(font_small)
234
        .font(font_small)
227
-       .tag(0)                              .text   (BTN_POS(3,3),  BTN_SIZE(1,1), F("Unload"))
228
-                                            .text   (BTN_POS(4,3),  BTN_SIZE(1,1), F("Load/Extrude"))
229
-       .tag(5)                .enabled(t_ok).button (BTN_POS(3,4),  BTN_SIZE(1,1), F("Momentary"))
230
-       .tag(6)                .enabled(t_ok).button (BTN_POS(4,4),  BTN_SIZE(1,1), F("Momentary"))
231
-       .tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(3,5),  BTN_SIZE(1,1), F("Continuous"))
232
-       .tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(4,5),  BTN_SIZE(1,1), F("Continuous"))
235
+       .tag(0)                              .text   (BTN_POS(3,3),  BTN_SIZE(1,1), GET_TEXTF(UNLOAD_FILAMENT))
236
+                                            .text   (BTN_POS(4,3),  BTN_SIZE(1,1), GET_TEXTF(LOAD_FILAMENT))
237
+       .tag(5)                .enabled(t_ok).button (BTN_POS(3,4),  BTN_SIZE(1,1), GET_TEXTF(MOMENTARY))
238
+       .tag(6)                .enabled(t_ok).button (BTN_POS(4,4),  BTN_SIZE(1,1), GET_TEXTF(MOMENTARY))
239
+       .tag(7).TOG_STYLE(tog7).enabled(t_ok).button (BTN_POS(3,5),  BTN_SIZE(1,1), GET_TEXTF(CONTINUOUS))
240
+       .tag(8).TOG_STYLE(tog8).enabled(t_ok).button (BTN_POS(4,5),  BTN_SIZE(1,1), GET_TEXTF(CONTINUOUS))
233
        .font(font_medium)
241
        .font(font_medium)
234
-       .tag(1).colors(action_btn)           .button (BTN_POS(3,6),  BTN_SIZE(2,1), F("Back"));
242
+       .tag(1).colors(action_btn)           .button (BTN_POS(3,6),  BTN_SIZE(2,1), GET_TEXTF(BACK));
235
     #endif
243
     #endif
236
   }
244
   }
237
   #undef GRID_COLS
245
   #undef GRID_COLS

+ 1
- 1
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_abort_print_dialog_box.cpp View File

29
 using namespace ExtUI;
29
 using namespace ExtUI;
30
 
30
 
31
 void ConfirmAbortPrintDialogBox::onRedraw(draw_mode_t) {
31
 void ConfirmAbortPrintDialogBox::onRedraw(draw_mode_t) {
32
-  drawMessage(F("Are you sure you want to cancel the print?"));
32
+  drawMessage(GET_TEXTF(ABORT_WARNING));
33
   drawYesNoButtons();
33
   drawYesNoButtons();
34
 }
34
 }
35
 
35
 

+ 1
- 1
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_auto_calibration_dialog_box.cpp View File

30
 using namespace Theme;
30
 using namespace Theme;
31
 
31
 
32
 void ConfirmAutoCalibrationDialogBox::onRedraw(draw_mode_t) {
32
 void ConfirmAutoCalibrationDialogBox::onRedraw(draw_mode_t) {
33
-  drawMessage(F("For best results, unload the filament and clean the hotend prior to starting calibration. Continue?"));
33
+  drawMessage(GET_TEXTF(CALIBRATION_WARNING));
34
   drawYesNoButtons();
34
   drawYesNoButtons();
35
 }
35
 }
36
 
36
 

+ 3
- 3
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/confirm_erase_flash_dialog_box.cpp View File

31
 using namespace FTDI;
31
 using namespace FTDI;
32
 
32
 
33
 void ConfirmEraseFlashDialogBox::onRedraw(draw_mode_t) {
33
 void ConfirmEraseFlashDialogBox::onRedraw(draw_mode_t) {
34
-  drawMessage(F("Are you sure? SPI flash will be erased."));
34
+  drawMessage(GET_TEXTF(ERASE_FLASH_WARNING));
35
   drawYesNoButtons();
35
   drawYesNoButtons();
36
 }
36
 }
37
 
37
 
38
 bool ConfirmEraseFlashDialogBox::onTouchEnd(uint8_t tag) {
38
 bool ConfirmEraseFlashDialogBox::onTouchEnd(uint8_t tag) {
39
   switch (tag) {
39
   switch (tag) {
40
     case 1:
40
     case 1:
41
-      SpinnerDialogBox::show(F("Erasing..."));
41
+      SpinnerDialogBox::show(GET_TEXTF(ERASING));
42
       UIFlashStorage::format_flash();
42
       UIFlashStorage::format_flash();
43
       SpinnerDialogBox::hide();
43
       SpinnerDialogBox::hide();
44
-      AlertDialogBox::show(F("SPI flash erased"));
44
+      AlertDialogBox::show(GET_TEXTF(ERASED));
45
       // Remove ConfirmEraseFlashDialogBox from the stack
45
       // Remove ConfirmEraseFlashDialogBox from the stack
46
       // so the alert box doesn't return to me.
46
       // so the alert box doesn't return to me.
47
       current_screen.forget();
47
       current_screen.forget();

+ 6
- 6
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/default_acceleration_screen.cpp View File

33
 void DefaultAccelerationScreen::onRedraw(draw_mode_t what) {
33
 void DefaultAccelerationScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
   w.precision(0);
35
   w.precision(0);
36
-  w.units(PSTR("mm/s^2"));
37
-  w.heading(      PSTR("Default Acceleration"));
36
+  w.units(GET_TEXTF(UNITS_MM_S2));
37
+  w.heading(      GET_TEXTF(ACCELERATION));
38
   w.color(other);
38
   w.color(other);
39
-  w.adjuster(  2, PSTR("Printing:"),   getPrintingAcceleration_mm_s2() );
40
-  w.adjuster(  4, PSTR("Travel:"),     getTravelAcceleration_mm_s2() );
41
-  w.adjuster(  6, PSTR("Retraction:"), getRetractAcceleration_mm_s2() );
39
+  w.adjuster(  2, GET_TEXTF(ACCEL_PRINTING), getPrintingAcceleration_mm_s2() );
40
+  w.adjuster(  4, GET_TEXTF(ACCEL_TRAVEL),   getTravelAcceleration_mm_s2() );
41
+  w.adjuster(  6, GET_TEXTF(ACCEL_RETRACT),  getRetractAcceleration_mm_s2() );
42
   w.increments();
42
   w.increments();
43
-  w.button(    8, PSTR("Set Axis Maximum"));
43
+  w.button(    8, GET_TEXTF(SET_MAXIMUM));
44
 }
44
 }
45
 
45
 
46
 bool DefaultAccelerationScreen::onTouchHeld(uint8_t tag) {
46
 bool DefaultAccelerationScreen::onTouchHeld(uint8_t tag) {

+ 4
- 4
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/dialog_box_base_class.cpp View File

45
 }
45
 }
46
 
46
 
47
 template void DialogBoxBaseClass::drawMessage(const char *, int16_t font);
47
 template void DialogBoxBaseClass::drawMessage(const char *, int16_t font);
48
-template void DialogBoxBaseClass::drawMessage(const progmem_str, int16_t font);
48
+template void DialogBoxBaseClass::drawMessage(progmem_str, int16_t font);
49
 
49
 
50
 void DialogBoxBaseClass::drawYesNoButtons(uint8_t default_btn) {
50
 void DialogBoxBaseClass::drawYesNoButtons(uint8_t default_btn) {
51
   CommandProcessor cmd;
51
   CommandProcessor cmd;
52
   cmd.font(font_medium)
52
   cmd.font(font_medium)
53
-     .colors(default_btn == 1 ? action_btn : normal_btn).tag(1).button( BTN_POS(1,8), BTN_SIZE(1,1), F("Yes"))
54
-     .colors(default_btn == 2 ? action_btn : normal_btn).tag(2).button( BTN_POS(2,8), BTN_SIZE(1,1), F("No"));
53
+     .colors(default_btn == 1 ? action_btn : normal_btn).tag(1).button( BTN_POS(1,8), BTN_SIZE(1,1), GET_TEXTF(YES))
54
+     .colors(default_btn == 2 ? action_btn : normal_btn).tag(2).button( BTN_POS(2,8), BTN_SIZE(1,1), GET_TEXTF(NO));
55
 }
55
 }
56
 
56
 
57
 void DialogBoxBaseClass::drawOkayButton() {
57
 void DialogBoxBaseClass::drawOkayButton() {
58
   CommandProcessor cmd;
58
   CommandProcessor cmd;
59
   cmd.font(font_medium)
59
   cmd.font(font_medium)
60
-     .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Okay"));
60
+     .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(OKAY));
61
 }
61
 }
62
 
62
 
63
 void DialogBoxBaseClass::drawButton(const progmem_str label) {
63
 void DialogBoxBaseClass::drawButton(const progmem_str label) {

+ 6
- 6
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/display_tuning_screen.cpp View File

32
 void DisplayTuningScreen::onRedraw(draw_mode_t what) {
32
 void DisplayTuningScreen::onRedraw(draw_mode_t what) {
33
   widgets_t w(what);
33
   widgets_t w(what);
34
   w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST);
34
   w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST);
35
-  w.units(PSTR(""));
36
-  w.heading(     PSTR("Display Tuning"));
35
+  w.units(F(""));
36
+  w.heading(GET_TEXTF(DISPLAY_MENU));
37
   w.color(other);
37
   w.color(other);
38
-  w.adjuster( 2, PSTR("H Offset:"), CLCD::mem_read_16(CLCD::REG::HOFFSET) );
39
-  w.adjuster( 4, PSTR("V Offset:"), CLCD::mem_read_16(CLCD::REG::VOFFSET) );
38
+  w.adjuster( 2, GET_TEXTF(H_OFFSET), CLCD::mem_read_16(CLCD::REG::HOFFSET) );
39
+  w.adjuster( 4, GET_TEXTF(V_OFFSET), CLCD::mem_read_16(CLCD::REG::VOFFSET) );
40
   w.increments();
40
   w.increments();
41
-  w.heading(     PSTR("Touch Screen"));
42
-  w.button(6, PSTR("Calibrate"));
41
+  w.heading(     GET_TEXTF(TOUCH_SCREEN));
42
+  w.button(6,    GET_TEXTF(CALIBRATE));
43
 }
43
 }
44
 
44
 
45
 bool DisplayTuningScreen::onTouchHeld(uint8_t tag) {
45
 bool DisplayTuningScreen::onTouchHeld(uint8_t tag) {

+ 23
- 23
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp View File

48
   #define GRID_ROWS 7
48
   #define GRID_ROWS 7
49
   #define GRID_COLS 6
49
   #define GRID_COLS 6
50
 
50
 
51
-  #define PIN_BTN(X,Y,PIN,LABEL)          button(BTN_POS(X,Y), BTN_SIZE(2,1), F(LABEL))
51
+  #define PIN_BTN(X,Y,PIN,LABEL)          button(BTN_POS(X,Y), BTN_SIZE(2,1), LABEL)
52
   #define PIN_ENABLED(LABEL,PIN,INV,X,Y)  cmd.enabled(1).colors(READ(PIN##_PIN) != INV ? action_btn : normal_btn).PIN_BTN(X,Y,PIN,LABEL);
52
   #define PIN_ENABLED(LABEL,PIN,INV,X,Y)  cmd.enabled(1).colors(READ(PIN##_PIN) != INV ? action_btn : normal_btn).PIN_BTN(X,Y,PIN,LABEL);
53
   #define PIN_DISABLED(LABEL,PIN,INV,X,Y) cmd.enabled(0).PIN_BTN(X,Y,PIN,LABEL);
53
   #define PIN_DISABLED(LABEL,PIN,INV,X,Y) cmd.enabled(0).PIN_BTN(X,Y,PIN,LABEL);
54
 
54
 
57
   #else
57
   #else
58
   cmd.font(font_medium)
58
   cmd.font(font_medium)
59
   #endif
59
   #endif
60
-     .text(BTN_POS(1,1), BTN_SIZE(6,1), F("Endstop States:"))
60
+     .text(BTN_POS(1,1), BTN_SIZE(6,1), GET_TEXTF(ENDSTOPS))
61
      .font(font_tiny);
61
      .font(font_tiny);
62
   #if PIN_EXISTS(X_MAX)
62
   #if PIN_EXISTS(X_MAX)
63
-    PIN_ENABLED ("X Max", X_MAX,X_MAX_ENDSTOP_INVERTING,1,2)
63
+    PIN_ENABLED (GET_TEXTF(X_MAX), X_MAX,X_MAX_ENDSTOP_INVERTING,1,2)
64
   #else
64
   #else
65
-    PIN_DISABLED("X Max",X_MAX,X_MAX_ENDSTOP_INVERTING,1,2)
65
+    PIN_DISABLED(GET_TEXTF(X_MAX),X_MAX,X_MAX_ENDSTOP_INVERTING,1,2)
66
   #endif
66
   #endif
67
   #if PIN_EXISTS(Y_MAX)
67
   #if PIN_EXISTS(Y_MAX)
68
-    PIN_ENABLED ("Y Max",Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2)
68
+    PIN_ENABLED (GET_TEXTF(Y_MAX),Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2)
69
   #else
69
   #else
70
-    PIN_DISABLED("Y Max",Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2)
70
+    PIN_DISABLED(GET_TEXTF(Y_MAX),Y_MAX,Y_MAX_ENDSTOP_INVERTING,3,2)
71
   #endif
71
   #endif
72
   #if PIN_EXISTS(Z_MAX)
72
   #if PIN_EXISTS(Z_MAX)
73
-    PIN_ENABLED ("Z Max",Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2)
73
+    PIN_ENABLED (GET_TEXTF(Z_MAX),Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2)
74
   #else
74
   #else
75
-    PIN_DISABLED("Z Max",Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2)
75
+    PIN_DISABLED(GET_TEXTF(Z_MAX),Z_MAX,Z_MAX_ENDSTOP_INVERTING,5,2)
76
   #endif
76
   #endif
77
   #if PIN_EXISTS(X_MIN)
77
   #if PIN_EXISTS(X_MIN)
78
-    PIN_ENABLED ("X Min",X_MIN,X_MIN_ENDSTOP_INVERTING,1,3)
78
+    PIN_ENABLED (GET_TEXTF(X_MIN),X_MIN,X_MIN_ENDSTOP_INVERTING,1,3)
79
   #else
79
   #else
80
-    PIN_DISABLED("X Min",X_MIN,X_MIN_ENDSTOP_INVERTING,1,3)
80
+    PIN_DISABLED(GET_TEXTF(X_MIN),X_MIN,X_MIN_ENDSTOP_INVERTING,1,3)
81
   #endif
81
   #endif
82
   #if PIN_EXISTS(Y_MIN)
82
   #if PIN_EXISTS(Y_MIN)
83
-    PIN_ENABLED ("Y Min",Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3)
83
+    PIN_ENABLED (GET_TEXTF(Y_MIN),Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3)
84
   #else
84
   #else
85
-    PIN_DISABLED("Y Min",Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3)
85
+    PIN_DISABLED(GET_TEXTF(Y_MIN),Y_MIN,Y_MIN_ENDSTOP_INVERTING,3,3)
86
   #endif
86
   #endif
87
   #if PIN_EXISTS(Z_MIN)
87
   #if PIN_EXISTS(Z_MIN)
88
-    PIN_ENABLED ("Z Min",Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3)
88
+    PIN_ENABLED (GET_TEXTF(Z_MIN),Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3)
89
   #else
89
   #else
90
-    PIN_DISABLED("Z Min",Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3)
90
+    PIN_DISABLED(GET_TEXTF(Z_MIN),Z_MIN,Z_MIN_ENDSTOP_INVERTING,5,3)
91
   #endif
91
   #endif
92
   #if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT)
92
   #if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT)
93
-    PIN_ENABLED ("Runout 1",FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4)
93
+    PIN_ENABLED (GET_TEXTF(RUNOUT_1),FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4)
94
   #else
94
   #else
95
-    PIN_DISABLED("Runout 1",FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4)
95
+    PIN_DISABLED(GET_TEXTF(RUNOUT_1),FIL_RUNOUT, FIL_RUNOUT_INVERTING,1,4)
96
   #endif
96
   #endif
97
   #if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT2)
97
   #if ENABLED(FILAMENT_RUNOUT_SENSOR) && PIN_EXISTS(FIL_RUNOUT2)
98
-    PIN_ENABLED ("Runout 2",FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4)
98
+    PIN_ENABLED (GET_TEXTF(RUNOUT_2),FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4)
99
   #else
99
   #else
100
-    PIN_DISABLED("Runout 2",FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4)
100
+    PIN_DISABLED(GET_TEXTF(RUNOUT_2),FIL_RUNOUT2,FIL_RUNOUT_INVERTING,3,4)
101
   #endif
101
   #endif
102
   #if PIN_EXISTS(Z_MIN_PROBE)
102
   #if PIN_EXISTS(Z_MIN_PROBE)
103
-    PIN_ENABLED ("Z Probe",Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4)
103
+    PIN_ENABLED (GET_TEXTF(Z_PROBE),Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4)
104
   #else
104
   #else
105
-    PIN_DISABLED("Z Probe",Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4)
105
+    PIN_DISABLED(GET_TEXTF(Z_PROBE),Z_MIN_PROBE,Z_MIN_PROBE_ENDSTOP_INVERTING,5,4)
106
   #endif
106
   #endif
107
 
107
 
108
   #if HAS_SOFTWARE_ENDSTOPS
108
   #if HAS_SOFTWARE_ENDSTOPS
109
     #undef EDGE_R
109
     #undef EDGE_R
110
     #define EDGE_R 30
110
     #define EDGE_R 30
111
     cmd.font(font_small)
111
     cmd.font(font_small)
112
-       .text         (BTN_POS(1,5), BTN_SIZE(3,1), F("Soft Limits:"), OPT_RIGHTX | OPT_CENTERY)
112
+       .text         (BTN_POS(1,5), BTN_SIZE(3,1), GET_TEXTF(SOFT_ENDSTOPS), OPT_RIGHTX | OPT_CENTERY)
113
        .colors(ui_toggle)
113
        .colors(ui_toggle)
114
-       .tag(2).toggle(BTN_POS(4,5), BTN_SIZE(3,1), F("off\xFFon"), getSoftEndstopState());
114
+       .tag(2).toggle2(BTN_POS(4,5), BTN_SIZE(3,1), GET_TEXTF(NO), GET_TEXTF(YES), getSoftEndstopState());
115
       #undef EDGE_R
115
       #undef EDGE_R
116
       #define EDGE_R 0
116
       #define EDGE_R 0
117
   #endif
117
   #endif
118
 
118
 
119
   cmd.font(font_medium)
119
   cmd.font(font_medium)
120
      .colors(action_btn)
120
      .colors(action_btn)
121
-     .tag(1).button( BTN_POS(1,7), BTN_SIZE(6,1), F("Back"));
121
+     .tag(1).button( BTN_POS(1,7), BTN_SIZE(6,1), GET_TEXTF(BACK));
122
   #undef GRID_COLS
122
   #undef GRID_COLS
123
   #undef GRID_ROWS
123
   #undef GRID_ROWS
124
 }
124
 }

+ 3
- 3
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/feedrate_percent_screen.cpp View File

31
 
31
 
32
 void FeedratePercentScreen::onRedraw(draw_mode_t what) {
32
 void FeedratePercentScreen::onRedraw(draw_mode_t what) {
33
   widgets_t w(what);
33
   widgets_t w(what);
34
-  w.precision(0).units(PSTR("%"));
34
+  w.precision(0).units(GET_TEXTF(UNITS_PERCENT));
35
 
35
 
36
-  w.heading(PSTR("Print Speed"));
37
-  w.adjuster(4,  PSTR("Speed"), getFeedrate_percent());
36
+  w.heading(GET_TEXTF(PRINT_SPEED));
37
+  w.adjuster(4,  GET_TEXTF(SPEED), getFeedrate_percent());
38
   w.increments();
38
   w.increments();
39
 }
39
 }
40
 
40
 

+ 8
- 8
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_menu.cpp View File

43
     #ifdef TOUCH_UI_PORTRAIT
43
     #ifdef TOUCH_UI_PORTRAIT
44
       #define GRID_ROWS 9
44
       #define GRID_ROWS 9
45
       #define GRID_COLS 2
45
       #define GRID_COLS 2
46
-         .text  ( BTN_POS(1,1),      BTN_SIZE(2,1), F("Filament Options:"))
46
+         .text  ( BTN_POS(1,1),      BTN_SIZE(2,1), GET_TEXTF(FILAMENT))
47
          .font(font_medium).colors(normal_btn)
47
          .font(font_medium).colors(normal_btn)
48
       #if ENABLED(FILAMENT_RUNOUT_SENSOR)
48
       #if ENABLED(FILAMENT_RUNOUT_SENSOR)
49
         .enabled(1)
49
         .enabled(1)
50
       #else
50
       #else
51
         .enabled(0)
51
         .enabled(0)
52
       #endif
52
       #endif
53
-      .tag(2).button( BTN_POS(1,2),  BTN_SIZE(2,1), F("Runout Sensor"))
53
+      .tag(2).button( BTN_POS(1,2),  BTN_SIZE(2,1), GET_TEXTF(RUNOUT_SENSOR))
54
       #if ENABLED(LIN_ADVANCE)
54
       #if ENABLED(LIN_ADVANCE)
55
         .enabled(1)
55
         .enabled(1)
56
       #else
56
       #else
57
         .enabled(0)
57
         .enabled(0)
58
       #endif
58
       #endif
59
-      .tag(3).button( BTN_POS(1,3),  BTN_SIZE(2,1), F("Linear Advance"))
59
+      .tag(3).button( BTN_POS(1,3),  BTN_SIZE(2,1), GET_TEXTF(LINEAR_ADVANCE))
60
       .colors(action_btn)
60
       .colors(action_btn)
61
-      .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), F("Back"));
61
+      .tag(1) .button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXTF(BACK));
62
       #undef GRID_COLS
62
       #undef GRID_COLS
63
       #undef GRID_ROWS
63
       #undef GRID_ROWS
64
     #else
64
     #else
65
       #define GRID_ROWS 6
65
       #define GRID_ROWS 6
66
       #define GRID_COLS 3
66
       #define GRID_COLS 3
67
-         .text  ( BTN_POS(1,1),      BTN_SIZE(3,1), F("Filament Options:"))
67
+         .text  ( BTN_POS(1,1),      BTN_SIZE(3,1), GET_TEXTF(FILAMENT))
68
          .font(font_medium).colors(normal_btn)
68
          .font(font_medium).colors(normal_btn)
69
       #if ENABLED(FILAMENT_RUNOUT_SENSOR)
69
       #if ENABLED(FILAMENT_RUNOUT_SENSOR)
70
         .enabled(1)
70
         .enabled(1)
71
       #else
71
       #else
72
         .enabled(0)
72
         .enabled(0)
73
       #endif
73
       #endif
74
-      .tag(2).button( BTN_POS(1,2),  BTN_SIZE(3,1), F("Filament Runout"))
74
+      .tag(2).button( BTN_POS(1,2),  BTN_SIZE(3,1), GET_TEXTF(RUNOUT_SENSOR))
75
       #if ENABLED(LIN_ADVANCE)
75
       #if ENABLED(LIN_ADVANCE)
76
         .enabled(1)
76
         .enabled(1)
77
       #else
77
       #else
78
         .enabled(0)
78
         .enabled(0)
79
       #endif
79
       #endif
80
-      .tag(3).button( BTN_POS(1,3),  BTN_SIZE(3,1), F("Linear Advance"))
80
+      .tag(3).button( BTN_POS(1,3),  BTN_SIZE(3,1), GET_TEXTF(LINEAR_ADVANCE))
81
       .colors(action_btn)
81
       .colors(action_btn)
82
-      .tag(1) .button( BTN_POS(1,6), BTN_SIZE(3,1), F("Back"));
82
+      .tag(1) .button( BTN_POS(1,6), BTN_SIZE(3,1), GET_TEXTF(BACK));
83
     #endif
83
     #endif
84
   }
84
   }
85
 }
85
 }

+ 5
- 5
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/filament_runout_screen.cpp View File

32
 
32
 
33
 void FilamentRunoutScreen::onRedraw(draw_mode_t what) {
33
 void FilamentRunoutScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
-  w.heading(   PSTR("Runout Detection:"));
36
-  w.toggle( 2, PSTR("Filament Sensor:"), PSTR("off\xFFon"), getFilamentRunoutEnabled());
35
+  w.heading(   GET_TEXTF(FILAMENT));
36
+  w.toggle( 2, GET_TEXTF(RUNOUT_SENSOR), getFilamentRunoutEnabled());
37
 
37
 
38
   #ifdef FILAMENT_RUNOUT_DISTANCE_MM
38
   #ifdef FILAMENT_RUNOUT_DISTANCE_MM
39
-    w.heading(PSTR("Detection Threshold:"));
40
-    w.units(PSTR("mm"));
39
+    w.heading(GET_TEXTF(DETECTION_THRESHOLD));
40
+    w.units(GET_TEXTF(UNITS_MM));
41
     w.precision(0);
41
     w.precision(0);
42
     w.color(e_axis);
42
     w.color(e_axis);
43
-    w.adjuster( 10, PSTR("Distance:"), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled());
43
+    w.adjuster( 10, GET_TEXTF(DISTANCE), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled());
44
     w.increments();
44
     w.increments();
45
   #endif
45
   #endif
46
 }
46
 }

+ 4
- 4
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/files_screen.cpp View File

165
   cmd.colors(normal_btn)
165
   cmd.colors(normal_btn)
166
      .font(font_medium)
166
      .font(font_medium)
167
      .colors(has_selection ? normal_btn : action_btn)
167
      .colors(has_selection ? normal_btn : action_btn)
168
-     .tag(back_tag).button( BTN_POS(4,y), BTN_SIZE(3,h), F("Back"))
168
+     .tag(back_tag).button( BTN_POS(4,y), BTN_SIZE(3,h), GET_TEXTF(BACK))
169
      .enabled(has_selection)
169
      .enabled(has_selection)
170
      .colors(has_selection ? action_btn : normal_btn);
170
      .colors(has_selection ? action_btn : normal_btn);
171
   if (screen_data.FilesScreen.flags.is_dir) {
171
   if (screen_data.FilesScreen.flags.is_dir) {
172
-    cmd.tag(244).button( BTN_POS(1, y), BTN_SIZE(3,h), F("Open"));
172
+    cmd.tag(244).button( BTN_POS(1, y), BTN_SIZE(3,h), GET_TEXTF(OPEN_DIR));
173
   } else {
173
   } else {
174
-    cmd.tag(243).button( BTN_POS(1, y), BTN_SIZE(3,h), F("Print"));
174
+    cmd.tag(243).button( BTN_POS(1, y), BTN_SIZE(3,h), GET_TEXTF(PRINT_FILE));
175
   }
175
   }
176
 }
176
 }
177
 
177
 
210
       break;
210
       break;
211
     case 243:
211
     case 243:
212
       printFile(getSelectedShortFilename());
212
       printFile(getSelectedShortFilename());
213
-      StatusScreen::setStatusMessage(F("Print Starting"));
213
+      StatusScreen::setStatusMessage(GET_TEXTF(PRINT_STARTING));
214
       GOTO_SCREEN(StatusScreen);
214
       GOTO_SCREEN(StatusScreen);
215
       return true;
215
       return true;
216
     case 244:
216
     case 244:

+ 13
- 13
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_settings_screen.cpp View File

69
        .cmd(COLOR_RGB(bg_text_enabled))
69
        .cmd(COLOR_RGB(bg_text_enabled))
70
        .tag(0)
70
        .tag(0)
71
        .font(font_medium)
71
        .font(font_medium)
72
-       .text(BTN_POS(1,1), BTN_SIZE(4,1), F("Interface Settings"))
72
+       .text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXTF(INTERFACE_SETTINGS))
73
     #undef EDGE_R
73
     #undef EDGE_R
74
     #define EDGE_R 30
74
     #define EDGE_R 30
75
        .font(font_small)
75
        .font(font_small)
76
        .tag(0)
76
        .tag(0)
77
-       .text(BTN_POS(1,2), BTN_SIZE(2,1), F("LCD brightness:"), OPT_RIGHTX | OPT_CENTERY)
78
-       .text(BTN_POS(1,3), BTN_SIZE(2,1), F("Sound volume:"),   OPT_RIGHTX | OPT_CENTERY)
79
-       .text(BTN_POS(1,4), BTN_SIZE(2,1), F("Screen lock:"),    OPT_RIGHTX | OPT_CENTERY);
80
-    cmd.text(BTN_POS(1,5), BTN_SIZE(2,1), F("Boot screen:"),    OPT_RIGHTX | OPT_CENTERY);
77
+       .text(BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(LCD_BRIGHTNESS), OPT_RIGHTX | OPT_CENTERY)
78
+       .text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(SOUND_VOLUME),   OPT_RIGHTX | OPT_CENTERY)
79
+       .text(BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(SCREEN_LOCK),    OPT_RIGHTX | OPT_CENTERY);
80
+    cmd.text(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(BOOT_SCREEN),    OPT_RIGHTX | OPT_CENTERY);
81
     #undef EDGE_R
81
     #undef EDGE_R
82
   }
82
   }
83
 
83
 
94
        .tag(2).slider(BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.brightness, 128)
94
        .tag(2).slider(BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.brightness, 128)
95
        .tag(3).slider(BTN_POS(3,3), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume,     0xFF)
95
        .tag(3).slider(BTN_POS(3,3), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume,     0xFF)
96
        .colors(ui_toggle)
96
        .colors(ui_toggle)
97
-       .tag(4).toggle(BTN_POS(3,4), BTN_SIZE(w,1), F("off\xFFon"), LockScreen::is_enabled())
98
-       .tag(5).toggle(BTN_POS(3,5), BTN_SIZE(w,1), F("off\xFFon"), UIData::animations_enabled())
97
+       .tag(4).toggle2(BTN_POS(3,4), BTN_SIZE(w,1), GET_TEXTF(NO), GET_TEXTF(YES), LockScreen::is_enabled())
98
+       .tag(5).toggle2(BTN_POS(3,5), BTN_SIZE(w,1), GET_TEXTF(NO), GET_TEXTF(YES), UIData::animations_enabled())
99
     #undef EDGE_R
99
     #undef EDGE_R
100
     #define EDGE_R 0
100
     #define EDGE_R 0
101
     #ifdef TOUCH_UI_PORTRAIT
101
     #ifdef TOUCH_UI_PORTRAIT
102
        .colors(normal_btn)
102
        .colors(normal_btn)
103
-       .tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), F("Customize Sounds"))
103
+       .tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXTF(INTERFACE_SOUNDS))
104
        .colors(action_btn)
104
        .colors(action_btn)
105
-       .tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), F("Back"));
105
+       .tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXTF(BACK));
106
     #else
106
     #else
107
-       .tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), F("Customize Sounds"))
107
+       .tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(INTERFACE_SOUNDS))
108
        .colors(action_btn)
108
        .colors(action_btn)
109
-       .tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), F("Back"));
109
+       .tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXTF(BACK));
110
     #endif
110
     #endif
111
   }
111
   }
112
 }
112
 }
263
       success = persistentStore.write_data(0, data, LULZBOT_EEPROM_BACKUP_SIZE) == PERSISTENT_STORE_SUCCESS;
263
       success = persistentStore.write_data(0, data, LULZBOT_EEPROM_BACKUP_SIZE) == PERSISTENT_STORE_SUCCESS;
264
 
264
 
265
     if (success)
265
     if (success)
266
-      StatusScreen::setStatusMessage(F("Settings restored from backup"));
266
+      StatusScreen::setStatusMessage(GET_TEXTF(EEPROM_RESTORED));
267
     else
267
     else
268
-      StatusScreen::setStatusMessage(F("Settings restored to default"));
268
+      StatusScreen::setStatusMessage(GET_TEXTF(EEPROM_RESET));
269
 
269
 
270
     return success;
270
     return success;
271
   }
271
   }

+ 8
- 8
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/interface_sounds_screen.cpp View File

71
     #define GRID_ROWS 9
71
     #define GRID_ROWS 9
72
 
72
 
73
        .font(font_medium)
73
        .font(font_medium)
74
-       .text(BTN_POS(1,1), BTN_SIZE(4,1), F("Interface Sounds"))
74
+       .text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXTF(INTERFACE_SOUNDS))
75
     #undef EDGE_R
75
     #undef EDGE_R
76
     #define EDGE_R 30
76
     #define EDGE_R 30
77
        .font(font_small)
77
        .font(font_small)
78
-       .tag(0).text      (BTN_POS(1,2), BTN_SIZE(2,1), F("Sound volume:"),   OPT_RIGHTX | OPT_CENTERY)
79
-              .text      (BTN_POS(1,3), BTN_SIZE(2,1), F("Click sounds:"),   OPT_RIGHTX | OPT_CENTERY)
80
-              .text      (BTN_POS(1,5), BTN_SIZE(2,1), F("Print starting:"), OPT_RIGHTX | OPT_CENTERY)
81
-              .text      (BTN_POS(1,6), BTN_SIZE(2,1), F("Print finished:"), OPT_RIGHTX | OPT_CENTERY)
82
-              .text      (BTN_POS(1,7), BTN_SIZE(2,1), F("Print error:"),    OPT_RIGHTX | OPT_CENTERY);
78
+       .tag(0).text      (BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(SOUND_VOLUME),   OPT_RIGHTX | OPT_CENTERY)
79
+              .text      (BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(CLICK_SOUNDS),   OPT_RIGHTX | OPT_CENTERY)
80
+              .text      (BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(PRINT_STARTING), OPT_RIGHTX | OPT_CENTERY)
81
+              .text      (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(PRINT_FINISHED), OPT_RIGHTX | OPT_CENTERY)
82
+              .text      (BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(PRINT_ERROR),    OPT_RIGHTX | OPT_CENTERY);
83
     #undef EDGE_R
83
     #undef EDGE_R
84
   }
84
   }
85
 
85
 
95
     #define EDGE_R 30
95
     #define EDGE_R 30
96
        .tag(2).slider    (BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume, 0xFF)
96
        .tag(2).slider    (BTN_POS(3,2), BTN_SIZE(2,1), screen_data.InterfaceSettingsScreen.volume, 0xFF)
97
        .colors(ui_toggle)
97
        .colors(ui_toggle)
98
-       .tag(3).toggle    (BTN_POS(3,3), BTN_SIZE(w,1), F("off\xFFon"), UIData::touch_sounds_enabled())
98
+       .tag(3).toggle2   (BTN_POS(3,3), BTN_SIZE(w,1), GET_TEXTF(NO), GET_TEXTF(YES), UIData::touch_sounds_enabled())
99
     #undef EDGE_R
99
     #undef EDGE_R
100
        .colors(normal_btn)
100
        .colors(normal_btn)
101
     #define EDGE_R 0
101
     #define EDGE_R 0
103
        .tag(5).button    (BTN_POS(3,6), BTN_SIZE(2,1), getSoundSelection(PRINTING_FINISHED))
103
        .tag(5).button    (BTN_POS(3,6), BTN_SIZE(2,1), getSoundSelection(PRINTING_FINISHED))
104
        .tag(6).button    (BTN_POS(3,7), BTN_SIZE(2,1), getSoundSelection(PRINTING_FAILED))
104
        .tag(6).button    (BTN_POS(3,7), BTN_SIZE(2,1), getSoundSelection(PRINTING_FAILED))
105
        .colors(action_btn)
105
        .colors(action_btn)
106
-       .tag(1).button    (BTN_POS(1,9), BTN_SIZE(4,1), F("Back"));
106
+       .tag(1).button    (BTN_POS(1,9), BTN_SIZE(4,1), GET_TEXTF(BACK));
107
   }
107
   }
108
 }
108
 }
109
 
109
 

+ 6
- 6
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/jerk_screen.cpp View File

34
 
34
 
35
   widgets_t w(what);
35
   widgets_t w(what);
36
   w.precision(1);
36
   w.precision(1);
37
-  w.units(PSTR("mm/s"));
38
-  w.heading(                           PSTR("Maximum Jerk"));
39
-  w.color(x_axis) .adjuster( 2, PSTR("X:"), getAxisMaxJerk_mm_s(X) );
40
-  w.color(y_axis) .adjuster( 4, PSTR("Y:"), getAxisMaxJerk_mm_s(Y) );
41
-  w.color(z_axis) .adjuster( 6, PSTR("Z:"), getAxisMaxJerk_mm_s(Z) );
42
-  w.color(e_axis) .adjuster( 8, PSTR("E:"), getAxisMaxJerk_mm_s(E0) );
37
+  w.units(GET_TEXTF(UNITS_MM_S));
38
+  w.heading(GET_TEXTF(JERK));
39
+  w.color(x_axis) .adjuster( 2, GET_TEXTF(AXIS_X), getAxisMaxJerk_mm_s(X) );
40
+  w.color(y_axis) .adjuster( 4, GET_TEXTF(AXIS_Y), getAxisMaxJerk_mm_s(Y) );
41
+  w.color(z_axis) .adjuster( 6, GET_TEXTF(AXIS_Z), getAxisMaxJerk_mm_s(Z) );
42
+  w.color(e_axis) .adjuster( 8, GET_TEXTF(AXIS_E), getAxisMaxJerk_mm_s(E0) );
43
   w.increments();
43
   w.increments();
44
 }
44
 }
45
 
45
 

+ 2
- 2
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/junction_deviation_screen.cpp View File

33
 void JunctionDeviationScreen::onRedraw(draw_mode_t what) {
33
 void JunctionDeviationScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
   w.precision(2);
35
   w.precision(2);
36
-  w.units(PSTR("mm"));
37
-  w.heading(                          PSTR("Junction Deviation"));
36
+  w.units(GET_TEXTF(UNITS_MM));
37
+  w.heading(GET_TEXTF(JUNCTION_DEVIATION));
38
   w.color(other) .adjuster( 2, PSTR(""), getJunctionDeviation_mm() );
38
   w.color(other) .adjuster( 2, PSTR(""), getJunctionDeviation_mm() );
39
   w.increments();
39
   w.increments();
40
 }
40
 }

+ 2
- 2
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp View File

46
   cmd.font(Theme::font_large)
46
   cmd.font(Theme::font_large)
47
      .cmd(COLOR_RGB(Theme::bg_text_enabled))
47
      .cmd(COLOR_RGB(Theme::bg_text_enabled))
48
      .text(BTN_POS(1,2), BTN_SIZE(4,1), message)
48
      .text(BTN_POS(1,2), BTN_SIZE(4,1), message)
49
-     .text(BTN_POS(1,3), BTN_SIZE(4,1), F("PRINTER HALTED"))
50
-     .text(BTN_POS(1,6), BTN_SIZE(4,1), F("Please reset"));
49
+     .text(BTN_POS(1,3), BTN_SIZE(4,1), GET_TEXTF(PRINTER_HALTED))
50
+     .text(BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXTF(PLEASE_RESET));
51
 
51
 
52
   #undef GRID_COLS
52
   #undef GRID_COLS
53
   #undef GRID_ROWS
53
   #undef GRID_ROWS

+ 56
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/language_menu.cpp View File

1
+/*********************
2
+ * language_menu.cpp *
3
+ *********************/
4
+
5
+/****************************************************************************
6
+ *   Written By Mark Pelletier  2017 - Aleph Objects, Inc.                  *
7
+ *   Written By Marcio Teixeira 2018 - Aleph Objects, Inc.                  *
8
+ *                                                                          *
9
+ *   This program is free software: you can redistribute it and/or modify   *
10
+ *   it under the terms of the GNU General Public License as published by   *
11
+ *   the Free Software Foundation, either version 3 of the License, or      *
12
+ *   (at your option) any later version.                                    *
13
+ *                                                                          *
14
+ *   This program is distributed in the hope that it will be useful,        *
15
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
16
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
17
+ *   GNU General Public License for more details.                           *
18
+ *                                                                          *
19
+ *   To view a copy of the GNU General Public License, go to the following  *
20
+ *   location: <http://www.gnu.org/licenses/>.                              *
21
+ ****************************************************************************/
22
+
23
+#include "../config.h"
24
+
25
+#if ENABLED(LULZBOT_TOUCH_UI) && defined(TOUCH_UI_LANGUAGE_MENU)
26
+
27
+#include "screens.h"
28
+
29
+using namespace FTDI;
30
+using namespace Theme;
31
+
32
+void LanguageMenu::onRedraw(draw_mode_t) {
33
+  CommandProcessor cmd;
34
+  cmd.cmd(CLEAR_COLOR_RGB(Theme::bg_color))
35
+     .cmd(CLEAR(true,true,true))
36
+     .colors(normal_btn)
37
+     .font(Theme::font_medium);
38
+
39
+  #define GRID_ROWS 8
40
+  #define GRID_COLS 1
41
+
42
+  for (uint8_t i = 0; i < get_language_count(); i++)
43
+    cmd.tag(1 + i).button(BTN_POS(1,i + 1), BTN_SIZE(1,1), get_text(i, String_Indices::LANGUAGE));
44
+}
45
+
46
+bool LanguageMenu::onTouchEnd(uint8_t tag) {
47
+  const uint8_t lang = tag - 1;
48
+  if (tag != 0) {
49
+    set_language(lang);
50
+    GOTO_SCREEN(StatusScreen);
51
+    return true;
52
+  }
53
+  return false;
54
+}
55
+
56
+#endif // LULZBOT_TOUCH_UI

+ 6
- 6
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/linear_advance_screen.cpp View File

33
 void LinearAdvanceScreen::onRedraw(draw_mode_t what) {
33
 void LinearAdvanceScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
   w.precision(2, DEFAULT_LOWEST).color(e_axis);
35
   w.precision(2, DEFAULT_LOWEST).color(e_axis);
36
-  w.heading(           PSTR("Linear Advance:"));
36
+  w.heading(           GET_TEXTF(LINEAR_ADVANCE));
37
   #if EXTRUDERS == 1
37
   #if EXTRUDERS == 1
38
-    w.adjuster(     2, PSTR("K:"),    getLinearAdvance_mm_mm_s(E0) );
38
+    w.adjuster(     2, GET_TEXTF(LINEAR_ADVANCE_K),    getLinearAdvance_mm_mm_s(E0) );
39
   #else
39
   #else
40
-    w.adjuster(     2, PSTR("K E1:"), getLinearAdvance_mm_mm_s(E0) );
41
-    w.adjuster(     4, PSTR("K E2:"), getLinearAdvance_mm_mm_s(E1) );
40
+    w.adjuster(     2, GET_TEXTF(LINEAR_ADVANCE_K1), getLinearAdvance_mm_mm_s(E0) );
41
+    w.adjuster(     4, GET_TEXTF(LINEAR_ADVANCE_K2), getLinearAdvance_mm_mm_s(E1) );
42
     #if EXTRUDERS > 2
42
     #if EXTRUDERS > 2
43
-      w.adjuster(   6, PSTR("K E3:"), getLinearAdvance_mm_mm_s(E2) );
43
+      w.adjuster(   6, GET_TEXTF(LINEAR_ADVANCE_K3), getLinearAdvance_mm_mm_s(E2) );
44
       #if EXTRUDERS > 3
44
       #if EXTRUDERS > 3
45
-        w.adjuster( 8, PSTR("K E4:"), getLinearAdvance_mm_mm_s(E3) );
45
+        w.adjuster( 8, GET_TEXTF(LINEAR_ADVANCE_K4), getLinearAdvance_mm_mm_s(E3) );
46
       #endif
46
       #endif
47
     #endif
47
     #endif
48
   #endif
48
   #endif

+ 4
- 4
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/lock_screen.cpp View File

65
     progmem_str message;
65
     progmem_str message;
66
     switch (message_style()) {
66
     switch (message_style()) {
67
       case 'w':
67
       case 'w':
68
-        message = F("Wrong passcode!");
68
+        message = GET_TEXTF(PASSCODE_REJECTED);
69
         break;
69
         break;
70
       case 'g':
70
       case 'g':
71
-        message = F("Passcode accepted!");
71
+        message = GET_TEXTF(PASSCODE_ACCEPTED);
72
         break;
72
         break;
73
       default:
73
       default:
74
         if (passcode == 0) {
74
         if (passcode == 0) {
75
-          message = F("Select Passcode:");
75
+          message = GET_TEXTF(PASSCODE_SELECT);
76
         } else {
76
         } else {
77
-          message = F("Enter Passcode:");
77
+          message = GET_TEXTF(PASSCODE_REQUEST);
78
         }
78
         }
79
     }
79
     }
80
     message_style() = '\0'; // Terminate the string.
80
     message_style() = '\0'; // Terminate the string.

+ 20
- 20
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/main_menu.cpp View File

43
     #ifdef TOUCH_UI_PORTRAIT
43
     #ifdef TOUCH_UI_PORTRAIT
44
       #define GRID_ROWS 8
44
       #define GRID_ROWS 8
45
       #define GRID_COLS 2
45
       #define GRID_COLS 2
46
-        .tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), F("Auto Home"))
46
+        .tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXTF(AUTO_HOME))
47
         #ifdef NOZZLE_CLEAN_FEATURE
47
         #ifdef NOZZLE_CLEAN_FEATURE
48
          .enabled(1)
48
          .enabled(1)
49
         #else
49
         #else
50
          .enabled(0)
50
          .enabled(0)
51
         #endif
51
         #endif
52
-        .tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), F("Clean Nozzle"))
53
-        .tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), F("Move Axis"))
54
-        .tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), F("Motors Off"))
55
-        .tag(6).button( BTN_POS(1,3), BTN_SIZE(2,1), F("Temperature"))
56
-        .tag(7).button( BTN_POS(1,4), BTN_SIZE(2,1), F("Change Filament"))
57
-        .tag(8).button( BTN_POS(1,5), BTN_SIZE(2,1), F("Advanced Settings"))
52
+        .tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(CLEAN_NOZZLE))
53
+        .tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(MOVE_AXIS))
54
+        .tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(MOTORS_OFF))
55
+        .tag(6).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(TEMPERATURE))
56
+        .tag(7).button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(CHANGE_FILAMENT))
57
+        .tag(8).button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(ADVANCED_SETTINGS))
58
         #ifdef PRINTCOUNTER
58
         #ifdef PRINTCOUNTER
59
          .enabled(1)
59
          .enabled(1)
60
         #else
60
         #else
61
          .enabled(0)
61
          .enabled(0)
62
         #endif
62
         #endif
63
-        .tag(9).button( BTN_POS(1,7), BTN_SIZE(2,1), F("Printer Statistics"))
64
-        .tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), F("About Printer"))
63
+        .tag(9).button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(PRINTER_STATISTICS))
64
+        .tag(10).button( BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(ABOUT_PRINTER))
65
         .colors(action_btn)
65
         .colors(action_btn)
66
-        .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), F("Back"));
66
+        .tag(1).button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(BACK));
67
       #undef GRID_COLS
67
       #undef GRID_COLS
68
       #undef GRID_ROWS
68
       #undef GRID_ROWS
69
     #else
69
     #else
70
       #define GRID_ROWS 5
70
       #define GRID_ROWS 5
71
       #define GRID_COLS 2
71
       #define GRID_COLS 2
72
-        .tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), F("Auto Home"))
72
+        .tag(2).button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXT(AUTO_HOME))
73
         #if ENABLED(NOZZLE_CLEAN_FEATURE)
73
         #if ENABLED(NOZZLE_CLEAN_FEATURE)
74
          .enabled(1)
74
          .enabled(1)
75
         #else
75
         #else
76
          .enabled(0)
76
          .enabled(0)
77
         #endif
77
         #endif
78
-        .tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), F("Clean Nozzle"))
79
-        .tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), F("Move Axis"))
80
-        .tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), F("Motors Off"))
81
-        .tag(6).button( BTN_POS(1,3), BTN_SIZE(1,1), F("Temperature"))
82
-        .tag(7).button( BTN_POS(2,3), BTN_SIZE(1,1), F("Change Filament"))
83
-        .tag(8).button( BTN_POS(1,4), BTN_SIZE(1,1), F("Advanced Settings"))
78
+        .tag(3).button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(CLEAN_NOZZLE))
79
+        .tag(4).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(MOVE_AXIS))
80
+        .tag(5).button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(MOTORS_OFF))
81
+        .tag(6).button( BTN_POS(1,3), BTN_SIZE(1,1), GET_TEXTF(TEMPERATURE))
82
+        .tag(7).button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(CHANGE_FILAMENT))
83
+        .tag(8).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(ADVANCED_SETTINGS))
84
         #ifdef PRINTCOUNTER
84
         #ifdef PRINTCOUNTER
85
          .enabled(1)
85
          .enabled(1)
86
         #else
86
         #else
87
          .enabled(0)
87
          .enabled(0)
88
         #endif
88
         #endif
89
-        .tag(9).button( BTN_POS(2,4), BTN_SIZE(1,1), F("Printer Statistics"))
90
-        .tag(10).button( BTN_POS(1,5), BTN_SIZE(1,1), F("About Printer"))
89
+        .tag(9).button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(PRINTER_STATISTICS))
90
+        .tag(10).button( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(ABOUT_PRINTER))
91
         .colors(action_btn)
91
         .colors(action_btn)
92
-        .tag(1).button( BTN_POS(2,5), BTN_SIZE(1,1), F("Back"));
92
+        .tag(1).button( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXTF(BACK));
93
       #undef GRID_COLS
93
       #undef GRID_COLS
94
       #undef GRID_ROWS
94
       #undef GRID_ROWS
95
     #endif
95
     #endif

+ 10
- 10
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp View File

33
 void MaxAccelerationScreen::onRedraw(draw_mode_t what) {
33
 void MaxAccelerationScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
   w.precision(0);
35
   w.precision(0);
36
-  w.units(PSTR("mm/s^2"));
37
-  w.heading(                     PSTR("Maximum Acceleration"));
38
-  w.color(x_axis)  .adjuster( 2, PSTR("X:"),  getAxisMaxAcceleration_mm_s2(X) );
39
-  w.color(y_axis)  .adjuster( 4, PSTR("Y:"),  getAxisMaxAcceleration_mm_s2(Y) );
40
-  w.color(z_axis)  .adjuster( 6, PSTR("Z:"),  getAxisMaxAcceleration_mm_s2(Z) );
36
+  w.units(GET_TEXTF(UNITS_MM_S2));
37
+  w.heading(GET_TEXTF(ACCELERATION));
38
+  w.color(x_axis)  .adjuster( 2, GET_TEXTF(AMAX_X),  getAxisMaxAcceleration_mm_s2(X) );
39
+  w.color(y_axis)  .adjuster( 4, GET_TEXTF(AMAX_Y),  getAxisMaxAcceleration_mm_s2(Y) );
40
+  w.color(z_axis)  .adjuster( 6, GET_TEXTF(AMAX_Z),  getAxisMaxAcceleration_mm_s2(Z) );
41
   #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
41
   #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
42
-    w.color(e_axis).adjuster( 8, PSTR("E:"),  getAxisMaxAcceleration_mm_s2(E0) );
42
+    w.color(e_axis).adjuster( 8, GET_TEXTF(AMAX_E1), getAxisMaxAcceleration_mm_s2(E0) );
43
   #elif EXTRUDERS > 1
43
   #elif EXTRUDERS > 1
44
-    w.color(e_axis).adjuster( 8, PSTR("E1:"), getAxisMaxAcceleration_mm_s2(E0) );
45
-    w.color(e_axis).adjuster(10, PSTR("E2:"), getAxisMaxAcceleration_mm_s2(E1) );
44
+    w.color(e_axis).adjuster( 8, GET_TEXTF(AMAX_E1), getAxisMaxAcceleration_mm_s2(E0) );
45
+    w.color(e_axis).adjuster(10, GET_TEXTF(AMAX_E2), getAxisMaxAcceleration_mm_s2(E1) );
46
     #if EXTRUDERS > 2
46
     #if EXTRUDERS > 2
47
-    w.color(e_axis).adjuster(12, PSTR("E3:"), getAxisMaxAcceleration_mm_s2(E2) );
47
+    w.color(e_axis).adjuster(12, GET_TEXTF(AMAX_E3), getAxisMaxAcceleration_mm_s2(E2) );
48
     #endif
48
     #endif
49
     #if EXTRUDERS > 3
49
     #if EXTRUDERS > 3
50
-    w.color(e_axis).adjuster(14, PSTR("E4:"), getAxisMaxAcceleration_mm_s2(E3) );
50
+    w.color(e_axis).adjuster(14, GET_TEXTF(AMAX_E4), getAxisMaxAcceleration_mm_s2(E3) );
51
     #endif
51
     #endif
52
   #endif
52
   #endif
53
   w.increments();
53
   w.increments();

+ 10
- 10
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_velocity_screen.cpp View File

34
   using namespace ExtUI;
34
   using namespace ExtUI;
35
   widgets_t w(what);
35
   widgets_t w(what);
36
   w.precision(0);
36
   w.precision(0);
37
-  w.units(PSTR("mm/s"));
38
-  w.heading(                        PSTR("Maximum Velocity"));
39
-  w.color(x_axis)    .adjuster(  2, PSTR("X:"),  getAxisMaxFeedrate_mm_s(X) );
40
-  w.color(y_axis)    .adjuster(  4, PSTR("Y:"),  getAxisMaxFeedrate_mm_s(Y) );
41
-  w.color(z_axis)    .adjuster(  6, PSTR("Z:"),  getAxisMaxFeedrate_mm_s(Z) );
37
+  w.units(GET_TEXTF(UNITS_MM_S));
38
+  w.heading(                        GET_TEXTF(VELOCITY));
39
+  w.color(x_axis)    .adjuster(  2, GET_TEXTF(VMAX_X), getAxisMaxFeedrate_mm_s(X) );
40
+  w.color(y_axis)    .adjuster(  4, GET_TEXTF(VMAX_Y), getAxisMaxFeedrate_mm_s(Y) );
41
+  w.color(z_axis)    .adjuster(  6, GET_TEXTF(VMAX_Z), getAxisMaxFeedrate_mm_s(Z) );
42
   #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
42
   #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
43
-    w.color(e_axis)  .adjuster(  8, PSTR("E:"),  getAxisMaxFeedrate_mm_s(E0) );
43
+    w.color(e_axis)  .adjuster(  8, GET_TEXTF(VMAX_E1), getAxisMaxFeedrate_mm_s(E0) );
44
   #elif EXTRUDERS > 1
44
   #elif EXTRUDERS > 1
45
-    w.color(e_axis)  .adjuster(  8, PSTR("E1:"), getAxisMaxFeedrate_mm_s(E0) );
46
-    w.color(e_axis)  .adjuster( 10, PSTR("E2:"), getAxisMaxFeedrate_mm_s(E1) );
45
+    w.color(e_axis)  .adjuster(  8, GET_TEXTF(VMAX_E1), getAxisMaxFeedrate_mm_s(E0) );
46
+    w.color(e_axis)  .adjuster( 10, GET_TEXTF(VMAX_E2), getAxisMaxFeedrate_mm_s(E1) );
47
     #if EXTRUDERS > 2
47
     #if EXTRUDERS > 2
48
-      w.color(e_axis).adjuster( 12, PSTR("E3:"), getAxisMaxFeedrate_mm_s(E2) );
48
+      w.color(e_axis).adjuster( 12, GET_TEXTF(VMAX_E3), getAxisMaxFeedrate_mm_s(E2) );
49
     #endif
49
     #endif
50
     #if EXTRUDERS > 3
50
     #if EXTRUDERS > 3
51
-      w.color(e_axis).adjuster( 14, PSTR("E4:"), getAxisMaxFeedrate_mm_s(E3) );
51
+      w.color(e_axis).adjuster( 14, GET_TEXTF(VMAX_E4), getAxisMaxFeedrate_mm_s(E3) );
52
     #endif
52
     #endif
53
   #endif
53
   #endif
54
   w.increments();
54
   w.increments();

+ 10
- 10
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/move_axis_screen.cpp View File

45
 void MoveAxisScreen::onRedraw(draw_mode_t what) {
45
 void MoveAxisScreen::onRedraw(draw_mode_t what) {
46
   widgets_t w(what);
46
   widgets_t w(what);
47
   w.precision(1);
47
   w.precision(1);
48
-  w.units(PSTR("mm"));
49
-  w.heading(                                PSTR("Move Axis"));
48
+  w.units(GET_TEXTF(UNITS_MM));
49
+  w.heading(                                GET_TEXTF(MOVE_AXIS));
50
   w.home_buttons(20);
50
   w.home_buttons(20);
51
-  w.color(Theme::x_axis  )   .adjuster(  2, PSTR("X:"),  getAxisPosition_mm(X), canMove(X));
52
-  w.color(Theme::y_axis  )   .adjuster(  4, PSTR("Y:"),  getAxisPosition_mm(Y), canMove(Y));
53
-  w.color(Theme::z_axis  )   .adjuster(  6, PSTR("Z:"),  getAxisPosition_mm(Z), canMove(Z));
51
+  w.color(Theme::x_axis  )   .adjuster(  2, GET_TEXTF(AXIS_X),  getAxisPosition_mm(X), canMove(X));
52
+  w.color(Theme::y_axis  )   .adjuster(  4, GET_TEXTF(AXIS_Y),  getAxisPosition_mm(Y), canMove(Y));
53
+  w.color(Theme::z_axis  )   .adjuster(  6, GET_TEXTF(AXIS_Z),  getAxisPosition_mm(Z), canMove(Z));
54
 
54
 
55
   #if EXTRUDERS == 1
55
   #if EXTRUDERS == 1
56
-    w.color(Theme::e_axis)   .adjuster(  8, PSTR("E:"),  screen_data.MoveAxisScreen.e_rel[0], canMove(E0));
56
+    w.color(Theme::e_axis)   .adjuster(  8, GET_TEXTF(AXIS_E),  screen_data.MoveAxisScreen.e_rel[0], canMove(E0));
57
   #elif EXTRUDERS > 1
57
   #elif EXTRUDERS > 1
58
-    w.color(Theme::e_axis)   .adjuster(  8, PSTR("E1:"), screen_data.MoveAxisScreen.e_rel[0], canMove(E0));
59
-    w.color(Theme::e_axis)   .adjuster( 10, PSTR("E2:"), screen_data.MoveAxisScreen.e_rel[1], canMove(E1));
58
+    w.color(Theme::e_axis)   .adjuster(  8, GET_TEXTF(AXIS_E1), screen_data.MoveAxisScreen.e_rel[0], canMove(E0));
59
+    w.color(Theme::e_axis)   .adjuster( 10, GET_TEXTF(AXIS_E2), screen_data.MoveAxisScreen.e_rel[1], canMove(E1));
60
     #if EXTRUDERS > 2
60
     #if EXTRUDERS > 2
61
-      w.color(Theme::e_axis) .adjuster( 12, PSTR("E3:"), screen_data.MoveAxisScreen.e_rel[2], canMove(E2));
61
+      w.color(Theme::e_axis) .adjuster( 12, GET_TEXTF(AXIS_E3), screen_data.MoveAxisScreen.e_rel[2], canMove(E2));
62
     #endif
62
     #endif
63
     #if EXTRUDERS > 3
63
     #if EXTRUDERS > 3
64
-      w.color(Theme::e_axis) .adjuster( 14, PSTR("E4:"), screen_data.MoveAxisScreen.e_rel[3], canMove(E3));
64
+      w.color(Theme::e_axis) .adjuster( 14, GET_TEXTF(AXIS_E4), screen_data.MoveAxisScreen.e_rel[3], canMove(E3));
65
     #endif
65
     #endif
66
   #endif
66
   #endif
67
   w.increments();
67
   w.increments();

+ 6
- 6
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nozzle_offsets_screen.cpp View File

39
 
39
 
40
 void NozzleOffsetScreen::onRedraw(draw_mode_t what) {
40
 void NozzleOffsetScreen::onRedraw(draw_mode_t what) {
41
   widgets_t w(what);
41
   widgets_t w(what);
42
-  w.precision(2).units(PSTR("mm"));
42
+  w.precision(2).units(GET_TEXTF(UNITS_MM));
43
 
43
 
44
-  w.heading(                          PSTR("Nozzle Offset"));
45
-  w.color(Theme::x_axis).adjuster(2,  PSTR("X:"), ExtUI::getNozzleOffset_mm(X, E1));
46
-  w.color(Theme::y_axis).adjuster(4,  PSTR("Y:"), ExtUI::getNozzleOffset_mm(Y, E1));
47
-  w.color(Theme::z_axis).adjuster(6,  PSTR("Z:"), ExtUI::getNozzleOffset_mm(Z, E1));
44
+  w.heading(                          GET_TEXTF(TOOL_OFFSETS));
45
+  w.color(Theme::x_axis).adjuster(2,  GET_TEXTF(AXIS_X), ExtUI::getNozzleOffset_mm(X, E1));
46
+  w.color(Theme::y_axis).adjuster(4,  GET_TEXTF(AXIS_Y), ExtUI::getNozzleOffset_mm(Y, E1));
47
+  w.color(Theme::z_axis).adjuster(6,  GET_TEXTF(AXIS_Z), ExtUI::getNozzleOffset_mm(Z, E1));
48
   #if ENABLED(CALIBRATION_GCODE)
48
   #if ENABLED(CALIBRATION_GCODE)
49
-  w.button(8, PSTR("Measure automatically"), !isPrinting());
49
+  w.button(8, GET_TEXTF(MEASURE_AUTOMATICALLY), !isPrinting());
50
   #endif
50
   #endif
51
   w.increments();
51
   w.increments();
52
 }
52
 }

+ 15
- 14
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/nudge_nozzle_screen.cpp View File

44
 
44
 
45
 void NudgeNozzleScreen::onRedraw(draw_mode_t what) {
45
 void NudgeNozzleScreen::onRedraw(draw_mode_t what) {
46
   widgets_t w(what);
46
   widgets_t w(what);
47
-  w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(PSTR("mm"));
47
+  w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(GET_TEXTF(UNITS_MM));
48
 
48
 
49
-  w.heading(                          PSTR("Nudge Nozzle"));
49
+  w.heading(                   GET_TEXTF(NUDGE_NOZZLE));
50
   #if ENABLED(BABYSTEP_XY)
50
   #if ENABLED(BABYSTEP_XY)
51
-  w.color(x_axis).adjuster(2,  PSTR("X:"), screen_data.NudgeNozzleScreen.rel[0] / getAxisSteps_per_mm(X));
52
-  w.color(y_axis).adjuster(4,  PSTR("Y:"), screen_data.NudgeNozzleScreen.rel[1] / getAxisSteps_per_mm(Y));
51
+  w.color(x_axis).adjuster(2,  GET_TEXTF(AXIS_X), screen_data.NudgeNozzleScreen.rel[0] / getAxisSteps_per_mm(X));
52
+  w.color(y_axis).adjuster(4,  GET_TEXTF(AXIS_Y), screen_data.NudgeNozzleScreen.rel[1] / getAxisSteps_per_mm(Y));
53
   #endif
53
   #endif
54
-  w.color(z_axis).adjuster(6,  PSTR("Z:"), screen_data.NudgeNozzleScreen.rel[2] / getAxisSteps_per_mm(Z));
54
+  w.color(z_axis).adjuster(6,  GET_TEXTF(AXIS_Z), screen_data.NudgeNozzleScreen.rel[2] / getAxisSteps_per_mm(Z));
55
   w.increments();
55
   w.increments();
56
   #if EXTRUDERS > 1
56
   #if EXTRUDERS > 1
57
-    w.toggle  (8,  PSTR("Adjust Both Nozzles:"), PSTR("no\xFFyes"), screen_data.NudgeNozzleScreen.link_nozzles, PSTR("Yes\nNo"));
57
+    w.toggle  (8,  GET_TEXTF(ADJUST_BOTH_NOZZLES), screen_data.NudgeNozzleScreen.link_nozzles);
58
   #endif
58
   #endif
59
 
59
 
60
   #if EXTRUDERS > 1 || HAS_BED_PROBE
60
   #if EXTRUDERS > 1 || HAS_BED_PROBE
61
-    w.toggle  (9,  PSTR("Show Offsets:"), PSTR("no\xFFyes"), screen_data.NudgeNozzleScreen.show_offsets, PSTR("Yes\nNo"));
61
+    w.toggle  (9,  GET_TEXTF(SHOW_OFFSETS), screen_data.NudgeNozzleScreen.show_offsets);
62
 
62
 
63
     if (screen_data.NudgeNozzleScreen.show_offsets) {
63
     if (screen_data.NudgeNozzleScreen.show_offsets) {
64
-      char str[19], num1[7];
64
+      char str[19];
65
 
65
 
66
       w.draw_mode(BOTH);
66
       w.draw_mode(BOTH);
67
       w.color(other);
67
       w.color(other);
68
 
68
 
69
       #if HAS_BED_PROBE
69
       #if HAS_BED_PROBE
70
-        dtostrf(getZOffset_mm(), 4, 2, num1);
71
-        sprintf_P(str, PSTR("%s mm"), num1);
72
-        w.text_field  (0,  PSTR("Z Offset"), str);
70
+        dtostrf(getZOffset_mm(), 4, 2, str);
71
+        strcat(str, " ");
72
+        strcat_P(str, GET_TEXT(UNITS_MM));
73
+        w.text_field  (0,  GET_TEXTF(ZPROBE_ZOFFSET), str);
73
       #endif
74
       #endif
74
 
75
 
75
       #if EXTRUDERS > 1
76
       #if EXTRUDERS > 1
76
-        char num2[7], num3[7];
77
+        char num1[7], num2[7], num3[7];
77
         dtostrf(getNozzleOffset_mm(X, E1), 4, 2, num1);
78
         dtostrf(getNozzleOffset_mm(X, E1), 4, 2, num1);
78
         dtostrf(getNozzleOffset_mm(Y, E1), 4, 2, num2);
79
         dtostrf(getNozzleOffset_mm(Y, E1), 4, 2, num2);
79
         dtostrf(getNozzleOffset_mm(Z, E1), 4, 2, num3);
80
         dtostrf(getNozzleOffset_mm(Z, E1), 4, 2, num3);
80
-        sprintf_P(str, PSTR("%s; %s; %s mm"), num1, num2, num3);
81
-        w.text_field  (0,  PSTR("Noz. Offset"), str);
81
+        sprintf_P(str, PSTR("%s; %s; %s %S"), num1, num2, num3, GET_TEXT(UNITS_MM));
82
+        w.text_field  (0, GET_TEXTF(TOOL_OFFSETS), str);
82
       #endif
83
       #endif
83
     }
84
     }
84
   #endif
85
   #endif

+ 3
- 3
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/restore_failsafe_dialog_box.cpp View File

29
 using namespace ExtUI;
29
 using namespace ExtUI;
30
 
30
 
31
 void RestoreFailsafeDialogBox::onRedraw(draw_mode_t) {
31
 void RestoreFailsafeDialogBox::onRedraw(draw_mode_t) {
32
-  drawMessage(F("Are you sure? Customizations will be lost."));
32
+  drawMessage(GET_TEXTF(EEPROM_RESET_WARNING));
33
   drawYesNoButtons();
33
   drawYesNoButtons();
34
 }
34
 }
35
 
35
 
36
 bool RestoreFailsafeDialogBox::onTouchEnd(uint8_t tag) {
36
 bool RestoreFailsafeDialogBox::onTouchEnd(uint8_t tag) {
37
   switch (tag) {
37
   switch (tag) {
38
     case 1:
38
     case 1:
39
-      ExtUI::injectCommands_P(PSTR("M502\nM117 Factory settings restored."));
40
-      AlertDialogBox::show(F("Factory settings restored."));
39
+      ExtUI::injectCommands_P(PSTR("M502"));
40
+      AlertDialogBox::show(GET_TEXTF(EEPROM_RESET));
41
       // Remove RestoreFailsafeDialogBox from the stack
41
       // Remove RestoreFailsafeDialogBox from the stack
42
       // so the alert box doesn't return to it.
42
       // so the alert box doesn't return to it.
43
       current_screen.forget();
43
       current_screen.forget();

+ 2
- 2
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/save_settings_dialog_box.cpp View File

31
 bool SaveSettingsDialogBox::needs_save = false;
31
 bool SaveSettingsDialogBox::needs_save = false;
32
 
32
 
33
 void SaveSettingsDialogBox::onRedraw(draw_mode_t) {
33
 void SaveSettingsDialogBox::onRedraw(draw_mode_t) {
34
-  drawMessage(F("Do you wish to save these settings as defaults?"));
34
+  drawMessage(GET_TEXTF(EEPROM_SAVE_PROMPT));
35
   drawYesNoButtons();
35
   drawYesNoButtons();
36
 }
36
 }
37
 
37
 
40
   switch (tag) {
40
   switch (tag) {
41
     case 1:
41
     case 1:
42
       injectCommands_P(PSTR("M500"));
42
       injectCommands_P(PSTR("M500"));
43
-      AlertDialogBox::show(F("Settings saved!"));
43
+      AlertDialogBox::show(GET_TEXTF(EEPROM_SAVED));
44
       // Remove SaveSettingsDialogBox from the stack
44
       // Remove SaveSettingsDialogBox from the stack
45
       // so the alert box doesn't return to me.
45
       // so the alert box doesn't return to me.
46
       current_screen.forget();
46
       current_screen.forget();

+ 3
- 0
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.cpp View File

31
 
31
 
32
 SCREEN_TABLE {
32
 SCREEN_TABLE {
33
   DECL_SCREEN(BootScreen),
33
   DECL_SCREEN(BootScreen),
34
+  #if ENABLED(TOUCH_UI_LANGUAGE_MENU)
35
+    DECL_SCREEN(LanguageMenu),
36
+  #endif
34
   DECL_SCREEN(TouchCalibrationScreen),
37
   DECL_SCREEN(TouchCalibrationScreen),
35
   DECL_SCREEN(StatusScreen),
38
   DECL_SCREEN(StatusScreen),
36
   DECL_SCREEN(MainMenu),
39
   DECL_SCREEN(MainMenu),

+ 21
- 11
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h View File

23
 #pragma once
23
 #pragma once
24
 
24
 
25
 #include "../ftdi_eve_lib/ftdi_eve_lib.h"
25
 #include "../ftdi_eve_lib/ftdi_eve_lib.h"
26
+#include "../language/languages.h"
26
 #include "../theme/theme.h"
27
 #include "../theme/theme.h"
27
 
28
 
28
 #define ROUND(val) uint16_t((val)+0.5)
29
 #define ROUND(val) uint16_t((val)+0.5)
219
     static void draw_status_message(draw_mode_t, const char * const);
220
     static void draw_status_message(draw_mode_t, const char * const);
220
 
221
 
221
   public:
222
   public:
223
+    static void loadBitmaps();
222
     static void setStatusMessage(const char *);
224
     static void setStatusMessage(const char *);
223
     static void setStatusMessage(progmem_str);
225
     static void setStatusMessage(progmem_str);
224
     static void onRedraw(draw_mode_t);
226
     static void onRedraw(draw_mode_t);
350
         uint8_t     _line;
352
         uint8_t     _line;
351
         uint32_t    _color;
353
         uint32_t    _color;
352
         uint8_t     _decimals;
354
         uint8_t     _decimals;
353
-        const char *_units;
355
+        progmem_str _units;
354
 
356
 
355
       protected:
357
       protected:
356
         void _draw_increment_btn(uint8_t line, const uint8_t tag);
358
         void _draw_increment_btn(uint8_t line, const uint8_t tag);
359
         widgets_t(draw_mode_t);
361
         widgets_t(draw_mode_t);
360
 
362
 
361
         widgets_t &color(uint32_t color)       {_color = color; return *this;}
363
         widgets_t &color(uint32_t color)       {_color = color; return *this;}
362
-        widgets_t &units(const char *units)    {_units = units; return *this;}
364
+        widgets_t &units(progmem_str units)    {_units = units; return *this;}
363
         widgets_t &draw_mode(draw_mode_t what) {_what  = what;  return *this;}
365
         widgets_t &draw_mode(draw_mode_t what) {_what  = what;  return *this;}
364
         widgets_t &precision(uint8_t decimals, precision_default_t = DEFAULT_HIGHEST);
366
         widgets_t &precision(uint8_t decimals, precision_default_t = DEFAULT_HIGHEST);
365
 
367
 
366
-        void heading       (const char *label);
367
-        void adjuster_sram_val (uint8_t tag,  const char *label, const char *value,  bool is_enabled = true);
368
-        void adjuster          (uint8_t tag,  const char *label, const char *value,  bool is_enabled = true);
369
-        void adjuster          (uint8_t tag,  const char *label, float value=0,      bool is_enabled = true);
370
-        void button            (uint8_t tag,  const char *label,                     bool is_enabled = true);
371
-        void text_field        (uint8_t tag,  const char *label, const char *value,  bool is_enabled = true);
372
-        void two_buttons       (uint8_t tag1, const char *label1,
373
-                                uint8_t tag2, const char *label2,                    bool is_enabled = true);
374
-        void toggle            (uint8_t tag,  const char *label, const char *text, bool value, bool is_enabled = true);
368
+        void heading           (progmem_str label);
369
+        void adjuster_sram_val (uint8_t tag,  progmem_str label, const char *value,  bool is_enabled = true);
370
+        void adjuster          (uint8_t tag,  progmem_str label, const char *value,  bool is_enabled = true);
371
+        void adjuster          (uint8_t tag,  progmem_str label, float value=0,      bool is_enabled = true);
372
+        void button            (uint8_t tag,  progmem_str label,                     bool is_enabled = true);
373
+        void text_field        (uint8_t tag,  progmem_str label, const char *value,  bool is_enabled = true);
374
+        void two_buttons       (uint8_t tag1, progmem_str label1,
375
+                                uint8_t tag2, progmem_str label2,                    bool is_enabled = true);
376
+        void toggle            (uint8_t tag,  progmem_str label,                     bool value, bool is_enabled = true);
375
         void home_buttons      (uint8_t tag);
377
         void home_buttons      (uint8_t tag);
376
         void increments        ();
378
         void increments        ();
377
     };
379
     };
710
 
712
 
711
     static void playStream(void *obj, media_streamer_func_t*);
713
     static void playStream(void *obj, media_streamer_func_t*);
712
 };
714
 };
715
+
716
+#if ENABLED(TOUCH_UI_LANGUAGE_MENU)
717
+  class LanguageMenu : public BaseScreen, public UncachedScreen {
718
+    public:
719
+      static void onRedraw(draw_mode_t);
720
+      static bool onTouchEnd(uint8_t tag);
721
+  };
722
+#endif

+ 1
- 1
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/spinner_dialog_box.cpp View File

46
 }
46
 }
47
 
47
 
48
 void SpinnerDialogBox::enqueueAndWait_P(const progmem_str commands) {
48
 void SpinnerDialogBox::enqueueAndWait_P(const progmem_str commands) {
49
-  enqueueAndWait_P(F("Please wait..."), commands);
49
+  enqueueAndWait_P(GET_TEXTF(PLEASE_WAIT), commands);
50
 }
50
 }
51
 
51
 
52
 void SpinnerDialogBox::enqueueAndWait_P(const progmem_str message, const progmem_str commands) {
52
 void SpinnerDialogBox::enqueueAndWait_P(const progmem_str message, const progmem_str commands) {

+ 7
- 7
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/statistics_screen.cpp View File

44
        .tag(0)
44
        .tag(0)
45
 
45
 
46
        .font(Theme::font_medium)
46
        .font(Theme::font_medium)
47
-       .text(BTN_POS(1,1), BTN_SIZE(4,1), F("Printer Statistics"))
47
+       .text(BTN_POS(1,1), BTN_SIZE(4,1), GET_TEXTF(PRINTER_STATISTICS))
48
        .font(Theme::font_small)
48
        .font(Theme::font_small)
49
        .tag(0)
49
        .tag(0)
50
-       .text(BTN_POS(1,2), BTN_SIZE(2,1), F("Total Prints:"),     OPT_RIGHTX | OPT_CENTERY)
51
-       .text(BTN_POS(1,3), BTN_SIZE(2,1), F("Finished Prints:"),  OPT_RIGHTX | OPT_CENTERY)
52
-       .text(BTN_POS(1,4), BTN_SIZE(2,1), F("Total Print Time:"), OPT_RIGHTX | OPT_CENTERY)
53
-       .text(BTN_POS(1,5), BTN_SIZE(2,1), F("Longest Print:"),    OPT_RIGHTX | OPT_CENTERY)
54
-       .text(BTN_POS(1,6), BTN_SIZE(2,1), F("Filament Used:"),    OPT_RIGHTX | OPT_CENTERY);
50
+       .text(BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(INFO_PRINT_COUNT),      OPT_RIGHTX | OPT_CENTERY)
51
+       .text(BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(INFO_COMPLETED_PRINTS), OPT_RIGHTX | OPT_CENTERY)
52
+       .text(BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(INFO_PRINT_TIME),       OPT_RIGHTX | OPT_CENTERY)
53
+       .text(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(INFO_PRINT_LONGEST),    OPT_RIGHTX | OPT_CENTERY)
54
+       .text(BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXTF(INFO_PRINT_FILAMENT),   OPT_RIGHTX | OPT_CENTERY);
55
     // Don't chain the following, it causes strange issues with evaluation ordering!
55
     // Don't chain the following, it causes strange issues with evaluation ordering!
56
     cmd.text(BTN_POS(3,2), BTN_SIZE(2,1), getTotalPrints_str(buffer));
56
     cmd.text(BTN_POS(3,2), BTN_SIZE(2,1), getTotalPrints_str(buffer));
57
     cmd.text(BTN_POS(3,3), BTN_SIZE(2,1), getFinishedPrints_str(buffer));
57
     cmd.text(BTN_POS(3,3), BTN_SIZE(2,1), getFinishedPrints_str(buffer));
63
   if (what & FOREGROUND) {
63
   if (what & FOREGROUND) {
64
     cmd.font(Theme::font_medium)
64
     cmd.font(Theme::font_medium)
65
        .colors(action_btn)
65
        .colors(action_btn)
66
-       .tag(1).button(BTN_POS(1,7), BTN_SIZE(4,1), F("Back"));
66
+       .tag(1).button(BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXTF(BACK));
67
   }
67
   }
68
 }
68
 }
69
 
69
 

+ 39
- 55
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/status_screen.cpp View File

22
 
22
 
23
 #include "../config.h"
23
 #include "../config.h"
24
 
24
 
25
-#if ENABLED(LULZBOT_TOUCH_UI) && !defined(LULZBOT_USE_BIOPRINTER_UI)
25
+#if ENABLED(LULZBOT_TOUCH_UI) && DISABLED(LULZBOT_USE_BIOPRINTER_UI)
26
 
26
 
27
 #include "screens.h"
27
 #include "screens.h"
28
 #include "screen_data.h"
28
 #include "screen_data.h"
29
 
29
 
30
 #include "../archim2-flash/flash_storage.h"
30
 #include "../archim2-flash/flash_storage.h"
31
 
31
 
32
-#if ENABLED(SDSUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
32
+#if BOTH(SDSUPPORT, LULZBOT_MANUAL_USB_STARTUP)
33
   #include "../../../../../sd/cardreader.h"
33
   #include "../../../../../sd/cardreader.h"
34
 #endif
34
 #endif
35
 
35
 
57
                          .button( BTN_POS(1,7), BTN_SIZE(2,1), F(""), OPT_FLAT)
57
                          .button( BTN_POS(1,7), BTN_SIZE(2,1), F(""), OPT_FLAT)
58
 
58
 
59
         .font(Theme::font_small)
59
         .font(Theme::font_small)
60
-                         .text  ( BTN_POS(1,5), BTN_SIZE(1,1), F("X"))
61
-                         .text  ( BTN_POS(1,6), BTN_SIZE(1,1), F("Y"))
62
-                         .text  ( BTN_POS(1,7), BTN_SIZE(1,1), F("Z"))
60
+                         .text  ( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(AXIS_X))
61
+                         .text  ( BTN_POS(1,6), BTN_SIZE(1,1), GET_TEXTF(AXIS_Y))
62
+                         .text  ( BTN_POS(1,7), BTN_SIZE(1,1), GET_TEXTF(AXIS_Z))
63
 
63
 
64
         .font(Theme::font_medium)
64
         .font(Theme::font_medium)
65
         .fgcolor(Theme::x_axis) .button( BTN_POS(2,5), BTN_SIZE(2,1), F(""), OPT_FLAT)
65
         .fgcolor(Theme::x_axis) .button( BTN_POS(2,5), BTN_SIZE(2,1), F(""), OPT_FLAT)
73
                          .button( BTN_POS(3,5), BTN_SIZE(1,2), F(""),  OPT_FLAT)
73
                          .button( BTN_POS(3,5), BTN_SIZE(1,2), F(""),  OPT_FLAT)
74
 
74
 
75
         .font(Theme::font_small)
75
         .font(Theme::font_small)
76
-                         .text  ( BTN_POS(1,5), BTN_SIZE(1,1), F("X"))
77
-                         .text  ( BTN_POS(2,5), BTN_SIZE(1,1), F("Y"))
78
-                         .text  ( BTN_POS(3,5), BTN_SIZE(1,1), F("Z"))
76
+                         .text  ( BTN_POS(1,5), BTN_SIZE(1,1), GET_TEXTF(AXIS_X))
77
+                         .text  ( BTN_POS(2,5), BTN_SIZE(1,1), GET_TEXTF(AXIS_Y))
78
+                         .text  ( BTN_POS(3,5), BTN_SIZE(1,1), GET_TEXTF(AXIS_Z))
79
                          .font(Theme::font_medium)
79
                          .font(Theme::font_medium)
80
 
80
 
81
         .fgcolor(Theme::x_axis) .button( BTN_POS(1,6), BTN_SIZE(1,1), F(""), OPT_FLAT)
81
         .fgcolor(Theme::x_axis) .button( BTN_POS(1,6), BTN_SIZE(1,1), F(""), OPT_FLAT)
92
 
92
 
93
     if (isAxisPositionKnown(X)) {
93
     if (isAxisPositionKnown(X)) {
94
       dtostrf(getAxisPosition_mm(X), 5, 1, x_str);
94
       dtostrf(getAxisPosition_mm(X), 5, 1, x_str);
95
-      strcat_P(x_str, PSTR(" mm"));
95
+      strcat_P(x_str, " ");
96
+      strcat_P(x_str, GET_TEXT(UNITS_MM));
96
     } else {
97
     } else {
97
       strcpy_P(x_str, PSTR("?"));
98
       strcpy_P(x_str, PSTR("?"));
98
     }
99
     }
99
 
100
 
100
     if (isAxisPositionKnown(Y)) {
101
     if (isAxisPositionKnown(Y)) {
101
       dtostrf(getAxisPosition_mm(Y), 5, 1, y_str);
102
       dtostrf(getAxisPosition_mm(Y), 5, 1, y_str);
102
-      strcat_P(y_str, PSTR(" mm"));
103
+      strcat_P(y_str, " ");
104
+      strcat_P(y_str, GET_TEXT(UNITS_MM));
103
     } else {
105
     } else {
104
       strcpy_P(y_str, PSTR("?"));
106
       strcpy_P(y_str, PSTR("?"));
105
     }
107
     }
106
 
108
 
107
     if (isAxisPositionKnown(Z)) {
109
     if (isAxisPositionKnown(Z)) {
108
       dtostrf(getAxisPosition_mm(Z), 5, 1, z_str);
110
       dtostrf(getAxisPosition_mm(Z), 5, 1, z_str);
109
-      strcat_P(z_str, PSTR(" mm"));
111
+      strcat_P(z_str, " ");
112
+      strcat_P(z_str, GET_TEXT(UNITS_MM));
110
     } else {
113
     } else {
111
       strcpy_P(z_str, PSTR("?"));
114
       strcpy_P(z_str, PSTR("?"));
112
     }
115
     }
182
 
185
 
183
   if (what & FOREGROUND) {
186
   if (what & FOREGROUND) {
184
     using namespace ExtUI;
187
     using namespace ExtUI;
185
-    char e0_str[15];
186
-    char e1_str[15];
187
-    char bed_str[15];
188
-    char fan_str[15];
188
+    char e0_str[20];
189
+    char e1_str[20];
190
+    char bed_str[20];
191
+    char fan_str[20];
189
 
192
 
190
     sprintf_P(
193
     sprintf_P(
191
       fan_str,
194
       fan_str,
193
       int8_t(getActualFan_percent(FAN0))
196
       int8_t(getActualFan_percent(FAN0))
194
     );
197
     );
195
 
198
 
196
-    #if defined(TOUCH_UI_USE_UTF8) && defined(TOUCH_UI_UTF8_WESTERN_CHARSET)
197
-      const char *idle = PSTR(u8"%3d°C / idle");
198
-      const char *not_idle = PSTR(u8"%3d / %3d°C");
199
-    #else
200
-      const char *idle = PSTR("%3d C / idle");
201
-      const char *not_idle = PSTR("%3d / %3d C");
202
-    #endif
199
+    if (isHeaterIdle(BED))
200
+      sprintf_P(bed_str, PSTR("%3d%S / %S"), ROUND(getActualTemp_celsius(BED)), GET_TEXT(UNITS_C), GET_TEXT(TEMP_IDLE));
201
+    else
202
+      sprintf_P(bed_str, PSTR("%3d / %3d%S"), ROUND(getActualTemp_celsius(BED)), ROUND(getTargetTemp_celsius(BED)), GET_TEXT(UNITS_C));
203
 
203
 
204
-    sprintf_P(
205
-      bed_str,
206
-      isHeaterIdle(BED) ? idle : not_idle,
207
-      ROUND(getActualTemp_celsius(BED)),
208
-      ROUND(getTargetTemp_celsius(BED))
209
-    );
210
-
211
-    sprintf_P(
212
-      e0_str,
213
-      isHeaterIdle(H0) ? idle : not_idle,
214
-      ROUND(getActualTemp_celsius(H0)),
215
-      ROUND(getTargetTemp_celsius(H0))
216
-    );
204
+    if (isHeaterIdle(H0))
205
+      sprintf_P(e0_str, PSTR("%3d%S / %S"), ROUND(getActualTemp_celsius(H0)), GET_TEXT(UNITS_C), GET_TEXT(TEMP_IDLE));
206
+    else
207
+      sprintf_P(e0_str, PSTR("%3d / %3d%S"), ROUND(getActualTemp_celsius(H0)), ROUND(getTargetTemp_celsius(H0)), GET_TEXT(UNITS_C));
217
 
208
 
218
     #if EXTRUDERS == 2
209
     #if EXTRUDERS == 2
219
-      sprintf_P(
220
-        e1_str,
221
-        isHeaterIdle(H1) ? idle : not_idle,
222
-        ROUND(getActualTemp_celsius(H1)),
223
-        ROUND(getTargetTemp_celsius(H1))
224
-      );
210
+      if (isHeaterIdle(H1))
211
+        sprintf_P(e1_str, PSTR("%3d%S / %S"), ROUND(getActualTemp_celsius(H1)), PSTR(GET_TEXT(UNITS_C)), GET_TEXT(TEMP_IDLE));
212
+      else
213
+        sprintf_P(e1_str, PSTR("%3d / %3d%S"), ROUND(getActualTemp_celsius(H1)), ROUND(getTargetTemp_celsius(H1)), GET_TEXT(UNITS_C));
225
     #else
214
     #else
226
       strcpy_P(
215
       strcpy_P(
227
         e1_str,
216
         e1_str,
290
     CommandProcessor cmd;
279
     CommandProcessor cmd;
291
     cmd.colors(normal_btn)
280
     cmd.colors(normal_btn)
292
        .font(Theme::font_medium)
281
        .font(Theme::font_medium)
293
-    #if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
282
+    #if BOTH(SDSUPPORT, LULZBOT_MANUAL_USB_STARTUP)
294
       .enabled(!Sd2Card::ready() || has_media)
283
       .enabled(!Sd2Card::ready() || has_media)
295
     #else
284
     #else
296
       .enabled(has_media)
285
       .enabled(has_media)
301
       #else
290
       #else
302
          .tag(3).button( BTN_POS(1,7), BTN_SIZE(2,2),
291
          .tag(3).button( BTN_POS(1,7), BTN_SIZE(2,2),
303
       #endif
292
       #endif
304
-      isPrintingFromMedia() ? F("Printing") :
305
-      #if ENABLED(USB_FLASH_DRIVE_SUPPORT)
306
-        #ifdef LULZBOT_MANUAL_USB_STARTUP
307
-        (Sd2Card::ready() ? F("USB Drive") : F("Enable USB"))
308
-        #else
309
-        F("USB Drive")
310
-        #endif
311
-        )
293
+      isPrintingFromMedia() ? GET_TEXTF(PRINTING) :
294
+      #if BOTH(SDSUPPORT, LULZBOT_MANUAL_USB_STARTUP)
295
+      (!Sd2Card::ready() ? GET_TEXTF(ENABLE_MEDIA) :
312
       #else
296
       #else
313
-        F("SD Card"))
297
+      GET_TEXTF(MEDIA))
314
       #endif
298
       #endif
315
       .colors(!has_media ? action_btn : normal_btn)
299
       .colors(!has_media ? action_btn : normal_btn)
316
       #ifdef TOUCH_UI_PORTRAIT
300
       #ifdef TOUCH_UI_PORTRAIT
317
-       .tag(4).button( BTN_POS(3,8), BTN_SIZE(2,1), F("MENU"));
301
+       .tag(4).button( BTN_POS(3,8), BTN_SIZE(2,1), GET_TEXTF(MENU));
318
       #else
302
       #else
319
-       .tag(4).button( BTN_POS(3,7), BTN_SIZE(2,2), F("MENU"));
303
+       .tag(4).button( BTN_POS(3,7), BTN_SIZE(2,2), GET_TEXTF(MENU));
320
     #endif
304
     #endif
321
   }
305
   }
322
   #undef  GRID_COLS
306
   #undef  GRID_COLS
423
 
407
 
424
   switch (tag) {
408
   switch (tag) {
425
     case 3:
409
     case 3:
426
-      #if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(LULZBOT_MANUAL_USB_STARTUP)
410
+      #if BOTH(SDSUPPORT, LULZBOT_MANUAL_USB_STARTUP)
427
       if (!Sd2Card::ready()) {
411
       if (!Sd2Card::ready()) {
428
-        StatusScreen::setStatusMessage(F("Insert USB drive..."));
412
+        StatusScreen::setStatusMessage(GET_TEXTF(INSERT_MEDIA));
429
         Sd2Card::usbStartup();
413
         Sd2Card::usbStartup();
430
       } else {
414
       } else {
431
         GOTO_SCREEN(FilesScreen);
415
         GOTO_SCREEN(FilesScreen);

+ 4
- 4
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/stepper_bump_sensitivity_screen.cpp View File

33
 void StepperBumpSensitivityScreen::onRedraw(draw_mode_t what) {
33
 void StepperBumpSensitivityScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
   w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST);
35
   w.precision(0, BaseNumericAdjustmentScreen::DEFAULT_LOWEST);
36
-  w.heading(                     PSTR("TMC Bump Sensitivity"));
37
-  w.color(x_axis)  .adjuster( 2, PSTR("X:"),  getTMCBumpSensitivity(X),
36
+  w.heading(                     GET_TEXTF(HOME_SENSE));
37
+  w.color(x_axis)  .adjuster( 2, GET_TEXTF(AXIS_X),  getTMCBumpSensitivity(X),
38
   #if X_SENSORLESS && AXIS_HAS_STALLGUARD(X)
38
   #if X_SENSORLESS && AXIS_HAS_STALLGUARD(X)
39
     true
39
     true
40
   #else
40
   #else
41
     false
41
     false
42
   #endif
42
   #endif
43
   );
43
   );
44
-  w.color(y_axis)  .adjuster( 4, PSTR("Y:"),  getTMCBumpSensitivity(Y),
44
+  w.color(y_axis)  .adjuster( 4, GET_TEXTF(AXIS_Y),  getTMCBumpSensitivity(Y),
45
    #if Y_SENSORLESS && AXIS_HAS_STALLGUARD(Y)
45
    #if Y_SENSORLESS && AXIS_HAS_STALLGUARD(Y)
46
      true
46
      true
47
    #else
47
    #else
48
      false
48
      false
49
    #endif
49
    #endif
50
   );
50
   );
51
-  w.color(z_axis)  .adjuster( 6, PSTR("Z:"),  getTMCBumpSensitivity(Z),
51
+  w.color(z_axis)  .adjuster( 6, GET_TEXTF(AXIS_Z),  getTMCBumpSensitivity(Z),
52
    #if Z_SENSORLESS && AXIS_HAS_STALLGUARD(Z)
52
    #if Z_SENSORLESS && AXIS_HAS_STALLGUARD(Z)
53
      true
53
      true
54
    #else
54
    #else

+ 10
- 10
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/stepper_current_screen.cpp View File

33
 void StepperCurrentScreen::onRedraw(draw_mode_t what) {
33
 void StepperCurrentScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
   w.precision(0);
35
   w.precision(0);
36
-  w.units(PSTR("mA"));
37
-  w.heading(                     PSTR("Stepper Current"));
38
-  w.color(x_axis)  .adjuster( 2, PSTR("X:"),  getAxisCurrent_mA(X) );
39
-  w.color(y_axis)  .adjuster( 4, PSTR("Y:"),  getAxisCurrent_mA(Y) );
40
-  w.color(z_axis)  .adjuster( 6, PSTR("Z:"),  getAxisCurrent_mA(Z) );
36
+  w.units(GET_TEXTF(UNITS_MILLIAMP));
37
+  w.heading(                     GET_TEXTF(MOTOR_CURRENT));
38
+  w.color(x_axis)  .adjuster( 2, GET_TEXTF(AXIS_X),  getAxisCurrent_mA(X) );
39
+  w.color(y_axis)  .adjuster( 4, GET_TEXTF(AXIS_Y),  getAxisCurrent_mA(Y) );
40
+  w.color(z_axis)  .adjuster( 6, GET_TEXTF(AXIS_Z),  getAxisCurrent_mA(Z) );
41
   #if EXTRUDERS == 1
41
   #if EXTRUDERS == 1
42
-    w.color(e_axis).adjuster( 8, PSTR("E:"),  getAxisCurrent_mA(E0) );
42
+    w.color(e_axis).adjuster( 8, GET_TEXTF(AXIS_E),  getAxisCurrent_mA(E0) );
43
   #elif EXTRUDERS > 1
43
   #elif EXTRUDERS > 1
44
-    w.color(e_axis).adjuster( 8, PSTR("E1:"), getAxisCurrent_mA(E0) );
45
-    w.color(e_axis).adjuster(10, PSTR("E2:"), getAxisCurrent_mA(E1) );
44
+    w.color(e_axis).adjuster( 8, GET_TEXTF(AXIS_E1), getAxisCurrent_mA(E0) );
45
+    w.color(e_axis).adjuster(10, GET_TEXTF(AXIS_E2), getAxisCurrent_mA(E1) );
46
     #if EXTRUDERS > 2
46
     #if EXTRUDERS > 2
47
-    w.color(e_axis).adjuster(12, PSTR("E3:"), getAxisCurrent_mA(E2) );
47
+    w.color(e_axis).adjuster(12, GET_TEXTF(AXIS_E3), getAxisCurrent_mA(E2) );
48
     #endif
48
     #endif
49
     #if EXTRUDERS > 3
49
     #if EXTRUDERS > 3
50
-    w.color(e_axis).adjuster(14, PSTR("E4:"), getAxisCurrent_mA(E3) );
50
+    w.color(e_axis).adjuster(14, GET_TEXTF(AXIS_E4), getAxisCurrent_mA(E3) );
51
     #endif
51
     #endif
52
   #endif
52
   #endif
53
   w.increments();
53
   w.increments();

+ 10
- 10
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/steps_screen.cpp View File

33
 void StepsScreen::onRedraw(draw_mode_t what) {
33
 void StepsScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
   w.precision(0);
35
   w.precision(0);
36
-  w.units(PSTR("st/mm"));
37
-  w.heading(                               PSTR("Steps/mm"));
38
-  w.color(x_axis)     .adjuster( 2, PSTR("X:"),  getAxisSteps_per_mm(X) );
39
-  w.color(y_axis)     .adjuster( 4, PSTR("Y:"),  getAxisSteps_per_mm(Y) );
40
-  w.color(z_axis)     .adjuster( 6, PSTR("Z:"),  getAxisSteps_per_mm(Z) );
36
+  w.units(GET_TEXTF(UNITS_STEP_MM));
37
+  w.heading(                        GET_TEXTF(STEPS_PER_MM));
38
+  w.color(x_axis)     .adjuster( 2, GET_TEXTF(AXIS_X),  getAxisSteps_per_mm(X) );
39
+  w.color(y_axis)     .adjuster( 4, GET_TEXTF(AXIS_Y),  getAxisSteps_per_mm(Y) );
40
+  w.color(z_axis)     .adjuster( 6, GET_TEXTF(AXIS_Z),  getAxisSteps_per_mm(Z) );
41
   #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
41
   #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
42
-    w.color(e_axis)   .adjuster( 8, PSTR("E:"),  getAxisSteps_per_mm(E0) );
42
+    w.color(e_axis)   .adjuster( 8, GET_TEXTF(AXIS_E),  getAxisSteps_per_mm(E0) );
43
   #elif EXTRUDERS > 1
43
   #elif EXTRUDERS > 1
44
-    w.color(e_axis)   .adjuster( 8, PSTR("E1:"), getAxisSteps_per_mm(E0) );
45
-    w.color(e_axis)   .adjuster(10, PSTR("E2:"), getAxisSteps_per_mm(E1) );
44
+    w.color(e_axis)   .adjuster( 8, GET_TEXTF(AXIS_E1), getAxisSteps_per_mm(E0) );
45
+    w.color(e_axis)   .adjuster(10, GET_TEXTF(AXIS_E2), getAxisSteps_per_mm(E1) );
46
     #if EXTRUDERS > 2
46
     #if EXTRUDERS > 2
47
-      w.color(e_axis) .adjuster(12, PSTR("E3:"), getAxisSteps_per_mm(E2) );
47
+      w.color(e_axis) .adjuster(12, GET_TEXTF(AXIS_E3), getAxisSteps_per_mm(E2) );
48
     #endif
48
     #endif
49
     #if EXTRUDERS > 3
49
     #if EXTRUDERS > 3
50
-      w.color(e_axis) .adjuster(14, PSTR("E4:"), getAxisSteps_per_mm(E3) );
50
+      w.color(e_axis) .adjuster(14, GET_TEXTF(AXIS_E4), getAxisSteps_per_mm(E3) );
51
     #endif
51
     #endif
52
   #endif
52
   #endif
53
   w.increments();
53
   w.increments();

+ 13
- 20
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/temperature_screen.cpp View File

32
 
32
 
33
 void TemperatureScreen::onRedraw(draw_mode_t what) {
33
 void TemperatureScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
-  w.precision(0).color(temp).units(
36
-    PSTR(
37
-    #if defined(TOUCH_UI_USE_UTF8) && defined(TOUCH_UI_UTF8_WESTERN_CHARSET)
38
-      u8"°C"
39
-    #else
40
-      "C"
41
-    #endif
42
-  ));
43
-  w.heading(         PSTR("Temperature:"));
44
-  w.button(30, PSTR("Cooldown (All Off)"));
35
+  w.precision(0).color(temp).units(GET_TEXTF(UNITS_C));
36
+  w.heading(GET_TEXTF(TEMPERATURE));
37
+  w.button(30, GET_TEXTF(COOLDOWN));
45
   #ifndef LULZBOT_DISABLE_TOOLHEAD_HEATER
38
   #ifndef LULZBOT_DISABLE_TOOLHEAD_HEATER
46
     #if HOTENDS == 1
39
     #if HOTENDS == 1
47
-      w.adjuster(   2, PSTR("Hot End:"),   getTargetTemp_celsius(E0));
40
+      w.adjuster(   2, GET_TEXTF(HOTEND),   getTargetTemp_celsius(E0));
48
     #else
41
     #else
49
-      w.adjuster(   2, PSTR("Hot End 1:"), getTargetTemp_celsius(E0));
50
-      w.adjuster(   4, PSTR("Hot End 2:"), getTargetTemp_celsius(E1));
42
+      w.adjuster(   2, GET_TEXTF(HOTEND1), getTargetTemp_celsius(E0));
43
+      w.adjuster(   4, GET_TEXTF(HOTEND2), getTargetTemp_celsius(E1));
51
       #if HOTENDS > 2
44
       #if HOTENDS > 2
52
-        w.adjuster( 6, PSTR("Hot End 3:"), getTargetTemp_celsius(E2));
45
+        w.adjuster( 6, GET_TEXTF(HOTEND3), getTargetTemp_celsius(E2));
53
       #endif
46
       #endif
54
       #if HOTENDS > 3
47
       #if HOTENDS > 3
55
-        w.adjuster( 8, PSTR("Hot End 4:"), getTargetTemp_celsius(E3));
48
+        w.adjuster( 8, GET_TEXTF(HOTEND4), getTargetTemp_celsius(E3));
56
       #endif
49
       #endif
57
     #endif
50
     #endif
58
   #endif
51
   #endif
59
   #if HAS_HEATED_BED
52
   #if HAS_HEATED_BED
60
-    w.adjuster(    20, PSTR("Bed:"),     getTargetTemp_celsius(BED));
53
+    w.adjuster(    20, GET_TEXTF(BED),     getTargetTemp_celsius(BED));
61
   #endif
54
   #endif
62
   #if FAN_COUNT > 0
55
   #if FAN_COUNT > 0
63
-    w.color(fan_speed).units(PSTR("%"));
64
-    w.adjuster(    10, PSTR("Fan Speed:"), getTargetFan_percent(FAN0));
56
+    w.color(fan_speed).units(GET_TEXTF(UNITS_PERCENT));
57
+    w.adjuster(    10, GET_TEXTF(FAN_SPEED), getTargetFan_percent(FAN0));
65
   #endif
58
   #endif
66
   w.increments();
59
   w.increments();
67
 }
60
 }
88
     case  9: UI_INCREMENT(TargetTemp_celsius, E3); break;
81
     case  9: UI_INCREMENT(TargetTemp_celsius, E3); break;
89
     #endif
82
     #endif
90
     #if FAN_COUNT > 0
83
     #if FAN_COUNT > 0
91
-    case 10: UI_DECREMENT(TargetFan_percent, FAN0);      break;
92
-    case 11: UI_INCREMENT(TargetFan_percent, FAN0);      break;
84
+    case 10: UI_DECREMENT(TargetFan_percent, FAN0); break;
85
+    case 11: UI_INCREMENT(TargetFan_percent, FAN0); break;
93
     #endif
86
     #endif
94
     case 30:
87
     case 30:
95
       setTargetTemp_celsius(0,E0);
88
       setTargetTemp_celsius(0,E0);

+ 7
- 33
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/touch_calibration_screen.cpp View File

44
     cmd.cmd(CMD_DLSTART)
44
     cmd.cmd(CMD_DLSTART)
45
        .cmd(CLEAR_COLOR_RGB(bg_color))
45
        .cmd(CLEAR_COLOR_RGB(bg_color))
46
        .cmd(CLEAR(true,true,true))
46
        .cmd(CLEAR(true,true,true))
47
-       .cmd(COLOR_RGB(bg_text_enabled))
48
-    #ifdef TOUCH_UI_PORTRAIT
49
-       .font(font_large)
50
-       .text  ( BTN_POS(1,8), BTN_SIZE(4,1), F("Release to begin"))
51
-       .text  ( BTN_POS(1,9), BTN_SIZE(4,1), F("screen calibration"))
52
-    #else
53
-       .font(
54
-        #ifdef TOUCH_UI_800x480
55
-          font_large
56
-        #else
57
-          font_medium
58
-        #endif
59
-        )
60
-       .text  ( BTN_POS(1,1), BTN_SIZE(4,16), F("Release to calibrate"))
61
-    #endif
62
-       .cmd(DL::DL_DISPLAY)
47
+       .cmd(COLOR_RGB(bg_text_enabled));
48
+    draw_text_box(cmd, BTN_POS(1,1), BTN_SIZE(4,16), GET_TEXTF(TOUCH_CALIBRATION_START), OPT_CENTER, font_large);
49
+    cmd.cmd(DL::DL_DISPLAY)
63
        .cmd(CMD_SWAP)
50
        .cmd(CMD_SWAP)
64
        .execute();
51
        .execute();
65
 
52
 
88
   CommandProcessor cmd;
75
   CommandProcessor cmd;
89
   cmd.cmd(CLEAR_COLOR_RGB(bg_color))
76
   cmd.cmd(CLEAR_COLOR_RGB(bg_color))
90
      .cmd(CLEAR(true,true,true))
77
      .cmd(CLEAR(true,true,true))
91
-     .cmd(COLOR_RGB(bg_text_enabled))
92
-
93
-  #ifdef TOUCH_UI_PORTRAIT
94
-     .font(font_large)
95
-     .text  ( BTN_POS(1,8), BTN_SIZE(4,1), F("Touch the dots"))
96
-     .text  ( BTN_POS(1,9), BTN_SIZE(4,1), F("to calibrate"))
97
-  #else
98
-     .font(
99
-       #ifdef TOUCH_UI_800x480
100
-         font_large
101
-       #else
102
-         font_medium
103
-       #endif
104
-     )
105
-     .text  ( BTN_POS(1,1), BTN_SIZE(4,16), F("Touch the dots to calibrate"))
106
-  #endif
107
-     .cmd(CMD_CALIBRATE);
78
+     .cmd(COLOR_RGB(bg_text_enabled));
79
+
80
+  draw_text_box(cmd, BTN_POS(1,1), BTN_SIZE(4,16), GET_TEXTF(TOUCH_CALIBRATION_PROMPT), OPT_CENTER, font_large);
81
+  cmd.cmd(CMD_CALIBRATE);
108
 }
82
 }
109
 
83
 
110
 void TouchCalibrationScreen::onIdle() {
84
 void TouchCalibrationScreen::onIdle() {

+ 20
- 20
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/tune_menu.cpp View File

52
     cmd.colors(normal_btn)
52
     cmd.colors(normal_btn)
53
        .font(font_medium)
53
        .font(font_medium)
54
     #ifdef TOUCH_UI_PORTRAIT
54
     #ifdef TOUCH_UI_PORTRAIT
55
-       .tag(2).enabled(1)      .button( BTN_POS(1,1), BTN_SIZE(2,1), F("Temperature"))
56
-       .tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(2,1), F("Change Filament"))
57
-        #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
55
+       .tag(2).enabled(1)      .button( BTN_POS(1,1), BTN_SIZE(2,1), GET_TEXTF(TEMPERATURE))
56
+       .tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(2,1), GET_TEXTF(CHANGE_FILAMENT))
57
+       #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
58
           .enabled(1)
58
           .enabled(1)
59
         #else
59
         #else
60
           .enabled(0)
60
           .enabled(0)
61
         #endif
61
         #endif
62
-       .tag(9).button( BTN_POS(1,3), BTN_SIZE(2,1), F("Filament Options"))
62
+       .tag(9).button( BTN_POS(1,3), BTN_SIZE(2,1), GET_TEXTF(FILAMENT))
63
       #if ENABLED(BABYSTEPPING)
63
       #if ENABLED(BABYSTEPPING)
64
-       .tag(4).enabled(1)      .button( BTN_POS(1,4), BTN_SIZE(2,1), F("Nudge Nozzle"))
64
+       .tag(4).enabled(1)      .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(NUDGE_NOZZLE))
65
       #else
65
       #else
66
         #if HAS_BED_PROBE
66
         #if HAS_BED_PROBE
67
           .enabled(1)
67
           .enabled(1)
68
         #else
68
         #else
69
           .enabled(0)
69
           .enabled(0)
70
         #endif
70
         #endif
71
-       .tag(4)                 .button( BTN_POS(1,4), BTN_SIZE(2,1), F("Adjust Z-Offset"))
71
+       .tag(4)                 .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(ZPROBE_ZOFFSET))
72
       #endif
72
       #endif
73
-       .tag(5).enabled(1)      .button( BTN_POS(1,5), BTN_SIZE(2,1), F("Print Speed"))
73
+       .tag(5).enabled(1)      .button( BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXTF(PRINT_SPEED))
74
        .tag(isPrintingFromMediaPaused() ? 7 : 6)
74
        .tag(isPrintingFromMediaPaused() ? 7 : 6)
75
       #if ENABLED(SDSUPPORT)
75
       #if ENABLED(SDSUPPORT)
76
         .enabled(isPrintingFromMedia())
76
         .enabled(isPrintingFromMedia())
77
       #else
77
       #else
78
         .enabled(0)
78
         .enabled(0)
79
       #endif
79
       #endif
80
-        .button( BTN_POS(1,6), BTN_SIZE(2,1), isPrintingFromMediaPaused() ? F("Resume Print") : F("Pause Print"))
80
+        .button( BTN_POS(1,6), BTN_SIZE(2,1), isPrintingFromMediaPaused() ? GET_TEXTF(RESUME_PRINT) : GET_TEXTF(PAUSE_PRINT))
81
       #if ENABLED(SDSUPPORT)
81
       #if ENABLED(SDSUPPORT)
82
         .enabled(isPrintingFromMedia())
82
         .enabled(isPrintingFromMedia())
83
       #else
83
       #else
84
         .enabled(0)
84
         .enabled(0)
85
       #endif
85
       #endif
86
-      .tag(8)             .button( BTN_POS(1,7), BTN_SIZE(2,1), F("Cancel Print"))
86
+      .tag(8)             .button( BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXTF(STOP_PRINT))
87
       .tag(1).colors(action_btn)
87
       .tag(1).colors(action_btn)
88
-                          .button( BTN_POS(1,8), BTN_SIZE(2,1), F("Back"));
88
+                          .button( BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXTF(BACK));
89
     #else // TOUCH_UI_PORTRAIT
89
     #else // TOUCH_UI_PORTRAIT
90
-       .tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(1,1), F("Temperature"))
91
-       .tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(1,1), F("Change Filament"))
90
+       .tag(2).enabled(1) .button( BTN_POS(1,1), BTN_SIZE(1,1), GET_TEXTF(TEMPERATURE))
91
+       .tag(3).enabled(!isPrinting()).button( BTN_POS(1,2), BTN_SIZE(1,1), GET_TEXTF(CHANGE_FILAMENT))
92
       #if ENABLED(BABYSTEPPING)
92
       #if ENABLED(BABYSTEPPING)
93
        .enabled(1)
93
        .enabled(1)
94
       #else
94
       #else
95
        .enabled(0)
95
        .enabled(0)
96
       #endif
96
       #endif
97
         #if ENABLED(BABYSTEPPING)
97
         #if ENABLED(BABYSTEPPING)
98
-          .tag(4)         .button( BTN_POS(2,1), BTN_SIZE(1,1), F("Nudge Nozzle"))
98
+          .tag(4)         .button( BTN_POS(2,1), BTN_SIZE(1,1), GET_TEXTF(NUDGE_NOZZLE))
99
         #else
99
         #else
100
           #if HAS_BED_PROBE
100
           #if HAS_BED_PROBE
101
             .enabled(1)
101
             .enabled(1)
102
           #else
102
           #else
103
             .enabled(0)
103
             .enabled(0)
104
           #endif
104
           #endif
105
-          .tag(4)         .button( BTN_POS(1,4), BTN_SIZE(2,1), F("Adjust Z-Offset"))
105
+          .tag(4)         .button( BTN_POS(1,4), BTN_SIZE(2,1), GET_TEXTF(ZPROBE_ZOFFSET))
106
         #endif
106
         #endif
107
-       .tag(5).enabled(1) .button( BTN_POS(2,2), BTN_SIZE(1,1), F("Print Speed"))
107
+       .tag(5).enabled(1) .button( BTN_POS(2,2), BTN_SIZE(1,1), GET_TEXTF(PRINT_SPEED))
108
        .tag(isPrintingFromMediaPaused() ? 7 : 6)
108
        .tag(isPrintingFromMediaPaused() ? 7 : 6)
109
       #if ENABLED(SDSUPPORT)
109
       #if ENABLED(SDSUPPORT)
110
         .enabled(isPrintingFromMedia())
110
         .enabled(isPrintingFromMedia())
111
       #else
111
       #else
112
         .enabled(0)
112
         .enabled(0)
113
       #endif
113
       #endif
114
-                          .button( BTN_POS(1,3), BTN_SIZE(1,1), isPrintingFromMediaPaused() ? F("Resume Print") : F("Pause Print"))
114
+                          .button( BTN_POS(1,3), BTN_SIZE(1,1), isPrintingFromMediaPaused() ? GET_TEXTF(RESUME_PRINT) : GET_TEXTF(PAUSE_PRINT))
115
       #if ENABLED(SDSUPPORT)
115
       #if ENABLED(SDSUPPORT)
116
         .enabled(isPrintingFromMedia())
116
         .enabled(isPrintingFromMedia())
117
       #else
117
       #else
118
         .enabled(0)
118
         .enabled(0)
119
       #endif
119
       #endif
120
-       .tag(8).           button( BTN_POS(2,3), BTN_SIZE(1,1), F("Cancel Print"))
121
-        #if EITHER(LIN_ADVANCE, FILAMENT_RUNOUT_SENSOR)
120
+       .tag(8).           button( BTN_POS(2,3), BTN_SIZE(1,1), GET_TEXTF(STOP_PRINT))
121
+       #if ENABLED(LIN_ADVANCE) || ENABLED(FILAMENT_RUNOUT_SENSOR)
122
           .enabled(1)
122
           .enabled(1)
123
         #else
123
         #else
124
           .enabled(0)
124
           .enabled(0)
125
         #endif
125
         #endif
126
-       .tag(9).button( BTN_POS(1,4), BTN_SIZE(1,1), F("Filament Options"))
127
-       .tag(1).colors(action_btn) .button( BTN_POS(2,4), BTN_SIZE(1,1), F("Back"));
126
+       .tag(9).button( BTN_POS(1,4), BTN_SIZE(1,1), GET_TEXTF(FILAMENT))
127
+       .tag(1).colors(action_btn) .button( BTN_POS(2,4), BTN_SIZE(1,1), GET_TEXTF(BACK));
128
     #endif
128
     #endif
129
   }
129
   }
130
   #undef GRID_COLS
130
   #undef GRID_COLS

+ 3
- 3
Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/z_offset_screen.cpp View File

32
 
32
 
33
 void ZOffsetScreen::onRedraw(draw_mode_t what) {
33
 void ZOffsetScreen::onRedraw(draw_mode_t what) {
34
   widgets_t w(what);
34
   widgets_t w(what);
35
-  w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(PSTR("mm"));
35
+  w.precision(2, BaseNumericAdjustmentScreen::DEFAULT_MIDRANGE).units(GET_TEXTF(UNITS_MM));
36
 
36
 
37
-  w.heading(                  PSTR("Z Offset"));
38
-  w.color(z_axis).adjuster(4, PSTR("Z Offset:"), getZOffset_mm());
37
+  w.heading(                  GET_TEXTF(ZPROBE_ZOFFSET));
38
+  w.color(z_axis).adjuster(4, GET_TEXTF(ZPROBE_ZOFFSET), getZOffset_mm());
39
   w.increments();
39
   w.increments();
40
 }
40
 }
41
 
41
 

+ 7
- 0
config/default/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/3DFabXYZ/Migbot/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/ADIMLab/Gantry v1/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/ADIMLab/Gantry v2/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/AlephObjects/TAZ4/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Alfawise/U20-bltouch/Configuration_adv.h View File

1215
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1215
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1216
   #endif
1216
   #endif
1217
 
1217
 
1218
+  // When labels do not fit buttons, use smaller font
1219
+  #define TOUCH_UI_FIT_TEXT
1220
+
1221
+  // Enable support for selection of languages at run-time
1222
+  // (otherwise will use the value of LCD_LANGUAGE)
1223
+  //#define TOUCH_UI_LANGUAGE_MENU
1224
+
1218
   // Use a numeric passcode for "Screen lock" keypad.
1225
   // Use a numeric passcode for "Screen lock" keypad.
1219
   // (recommended for smaller displays)
1226
   // (recommended for smaller displays)
1220
   //#define TOUCH_UI_PASSCODE
1227
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Alfawise/U20/Configuration_adv.h View File

1214
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1214
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1215
   #endif
1215
   #endif
1216
 
1216
 
1217
+  // When labels do not fit buttons, use smaller font
1218
+  #define TOUCH_UI_FIT_TEXT
1219
+
1220
+  // Enable support for selection of languages at run-time
1221
+  // (otherwise will use the value of LCD_LANGUAGE)
1222
+  //#define TOUCH_UI_LANGUAGE_MENU
1223
+
1217
   // Use a numeric passcode for "Screen lock" keypad.
1224
   // Use a numeric passcode for "Screen lock" keypad.
1218
   // (recommended for smaller displays)
1225
   // (recommended for smaller displays)
1219
   //#define TOUCH_UI_PASSCODE
1226
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/AliExpress/UM2pExt/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Anet/A2/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Anet/A2plus/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Anet/A6/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Anet/A8/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Anet/A8plus/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Anet/E16/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/AnyCubic/i3/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/ArmEd/Configuration_adv.h View File

1215
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1215
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1216
   #endif
1216
   #endif
1217
 
1217
 
1218
+  // When labels do not fit buttons, use smaller font
1219
+  #define TOUCH_UI_FIT_TEXT
1220
+
1221
+  // Enable support for selection of languages at run-time
1222
+  // (otherwise will use the value of LCD_LANGUAGE)
1223
+  //#define TOUCH_UI_LANGUAGE_MENU
1224
+
1218
   // Use a numeric passcode for "Screen lock" keypad.
1225
   // Use a numeric passcode for "Screen lock" keypad.
1219
   // (recommended for smaller displays)
1226
   // (recommended for smaller displays)
1220
   //#define TOUCH_UI_PASSCODE
1227
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/BIBO/TouchX/cyclops/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/BIBO/TouchX/default/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/BQ/Hephestos/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/BQ/Hephestos_2/Configuration_adv.h View File

1219
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1219
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1220
   #endif
1220
   #endif
1221
 
1221
 
1222
+  // When labels do not fit buttons, use smaller font
1223
+  #define TOUCH_UI_FIT_TEXT
1224
+
1225
+  // Enable support for selection of languages at run-time
1226
+  // (otherwise will use the value of LCD_LANGUAGE)
1227
+  //#define TOUCH_UI_LANGUAGE_MENU
1228
+
1222
   // Use a numeric passcode for "Screen lock" keypad.
1229
   // Use a numeric passcode for "Screen lock" keypad.
1223
   // (recommended for smaller displays)
1230
   // (recommended for smaller displays)
1224
   //#define TOUCH_UI_PASSCODE
1231
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/BQ/WITBOX/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Cartesio/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/CR-10/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/CR-10S/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/CR-10_5S/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/CR-10mini/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/CR-20 Pro/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/CR-20/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/CR-8/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/Ender-2/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/Ender-3/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/Ender-4/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Creality/Ender-5/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Dagoma/Disco Ultimate/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/Einstart-S/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 7
- 0
config/examples/FYSETC/AIO_II/Configuration_adv.h View File

1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1211
     #define TOUCH_UI_UTF8_WESTERN_CHARSET
1212
   #endif
1212
   #endif
1213
 
1213
 
1214
+  // When labels do not fit buttons, use smaller font
1215
+  #define TOUCH_UI_FIT_TEXT
1216
+
1217
+  // Enable support for selection of languages at run-time
1218
+  // (otherwise will use the value of LCD_LANGUAGE)
1219
+  //#define TOUCH_UI_LANGUAGE_MENU
1220
+
1214
   // Use a numeric passcode for "Screen lock" keypad.
1221
   // Use a numeric passcode for "Screen lock" keypad.
1215
   // (recommended for smaller displays)
1222
   // (recommended for smaller displays)
1216
   //#define TOUCH_UI_PASSCODE
1223
   //#define TOUCH_UI_PASSCODE

+ 0
- 0
config/examples/FYSETC/Cheetah 1.2/BLTouch/Configuration_adv.h View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save