My Marlin configs for Fabrikator Mini and CTC i3 Pro B
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

language.h 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  1. /**
  2. * Marlin 3D Printer Firmware
  3. * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
  4. *
  5. * Based on Sprinter and grbl.
  6. * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
  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. * You should have received a copy of the GNU General Public License
  19. * along with this program. If not, see <https://www.gnu.org/licenses/>.
  20. *
  21. */
  22. #pragma once
  23. #include "../inc/MarlinConfig.h"
  24. #define _UxGT(a) a
  25. // Fallback if no language is set. DON'T CHANGE
  26. #ifndef LCD_LANGUAGE
  27. #define LCD_LANGUAGE en
  28. #endif
  29. // For character-based LCD controllers (DISPLAY_CHARSET_HD44780)
  30. #define JAPANESE 1
  31. #define WESTERN 2
  32. #define CYRILLIC 3
  33. // NOTE: IF YOU CHANGE LANGUAGE FILES OR MERGE A FILE WITH CHANGES
  34. //
  35. // ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRA_LCD" / "SDSUPPORT" #define IN "Configuration.h"
  36. // ==> ALSO TRY ALL AVAILABLE LANGUAGE OPTIONS
  37. // See also https://marlinfw.org/docs/development/lcd_language.html
  38. // Languages
  39. // an Aragonese
  40. // bg Bulgarian
  41. // ca Catalan
  42. // cz Czech
  43. // da Danish
  44. // de German
  45. // el Greek (Greece)
  46. // el_CY Greek (Cyprus)
  47. // en English
  48. // es Spanish
  49. // eu Basque-Euskera
  50. // fi Finnish
  51. // fr French
  52. // gl Galician
  53. // hr Croatian
  54. // hu Hungarian
  55. // it Italian
  56. // jp_kana Japanese
  57. // ko_KR Korean (South Korea)
  58. // nl Dutch
  59. // pl Polish
  60. // pt Portuguese
  61. // pt_br Portuguese (Brazilian)
  62. // ro Romanian
  63. // ru Russian
  64. // sk Slovak
  65. // sv Swedish
  66. // tr Turkish
  67. // uk Ukrainian
  68. // vi Vietnamese
  69. // zh_CN Chinese (Simplified)
  70. // zh_TW Chinese (Traditional)
  71. #ifdef DEFAULT_SOURCE_CODE_URL
  72. #undef SOURCE_CODE_URL
  73. #define SOURCE_CODE_URL DEFAULT_SOURCE_CODE_URL
  74. #endif
  75. #ifdef CUSTOM_MACHINE_NAME
  76. #undef MACHINE_NAME
  77. #define MACHINE_NAME CUSTOM_MACHINE_NAME
  78. #elif defined(DEFAULT_MACHINE_NAME)
  79. #undef MACHINE_NAME
  80. #define MACHINE_NAME DEFAULT_MACHINE_NAME
  81. #endif
  82. #ifndef MACHINE_UUID
  83. #define MACHINE_UUID DEFAULT_MACHINE_UUID
  84. #endif
  85. #define MARLIN_WEBSITE_URL "marlinfw.org"
  86. //#if !defined(STRING_SPLASH_LINE3) && defined(WEBSITE_URL)
  87. // #define STRING_SPLASH_LINE3 WEBSITE_URL
  88. //#endif
  89. //
  90. // Common Serial Console Messages
  91. // Don't change these strings because serial hosts look for them.
  92. //
  93. #define STR_ENQUEUEING "enqueueing \""
  94. #define STR_POWERUP "PowerUp"
  95. #define STR_POWEROFF "PowerOff"
  96. #define STR_EXTERNAL_RESET " External Reset"
  97. #define STR_BROWNOUT_RESET " Brown out Reset"
  98. #define STR_WATCHDOG_RESET " Watchdog Reset"
  99. #define STR_SOFTWARE_RESET " Software Reset"
  100. #define STR_FREE_MEMORY " Free Memory: "
  101. #define STR_PLANNER_BUFFER_BYTES " PlannerBufferBytes: "
  102. #define STR_OK "ok"
  103. #define STR_WAIT "wait"
  104. #define STR_STATS "Stats: "
  105. #define STR_FILE_SAVED "Done saving file."
  106. #define STR_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line: "
  107. #define STR_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line: "
  108. #define STR_ERR_NO_CHECKSUM "No Checksum with line number, Last Line: "
  109. #define STR_FILE_PRINTED "Done printing file"
  110. #define STR_NO_MEDIA "No media"
  111. #define STR_BEGIN_FILE_LIST "Begin file list"
  112. #define STR_END_FILE_LIST "End file list"
  113. #define STR_INVALID_EXTRUDER "Invalid extruder"
  114. #define STR_INVALID_E_STEPPER "Invalid E stepper"
  115. #define STR_E_STEPPER_NOT_SPECIFIED "E stepper not specified"
  116. #define STR_INVALID_SOLENOID "Invalid solenoid"
  117. #define STR_COUNT_X " Count X:"
  118. #define STR_COUNT_A " Count A:"
  119. #define STR_WATCHDOG_FIRED "Watchdog timeout. Reset required."
  120. #define STR_ERR_KILLED "Printer halted. kill() called!"
  121. #define STR_FLOWMETER_FAULT "Coolant flow fault. Flowmeter safety is active. Attention required."
  122. #define STR_ERR_STOPPED "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
  123. #define STR_ERR_SERIAL_MISMATCH "Serial status mismatch"
  124. #define STR_BUSY_PROCESSING "busy: processing"
  125. #define STR_BUSY_PAUSED_FOR_USER "busy: paused for user"
  126. #define STR_BUSY_PAUSED_FOR_INPUT "busy: paused for input"
  127. #define STR_Z_MOVE_COMP "Z_move_comp"
  128. #define STR_RESEND "Resend: "
  129. #define STR_UNKNOWN_COMMAND "Unknown command: \""
  130. #define STR_ACTIVE_EXTRUDER "Active Extruder: "
  131. #define STR_ERR_FANSPEED "Fan speed E"
  132. #define STR_PROBE_OFFSET "Probe Offset"
  133. #define STR_SKEW_MIN "min_skew_factor: "
  134. #define STR_SKEW_MAX "max_skew_factor: "
  135. #define STR_ERR_MATERIAL_INDEX "M145 S<index> out of range (0-1)"
  136. #define STR_ERR_M421_PARAMETERS "M421 incorrect parameter usage"
  137. #define STR_ERR_BAD_PLANE_MODE "G5 requires XY plane mode"
  138. #define STR_ERR_MESH_XY "Mesh point out of range"
  139. #define STR_ERR_ARC_ARGS "G2/G3 bad parameters"
  140. #define STR_ERR_PROTECTED_PIN "Protected Pin"
  141. #define STR_ERR_M420_FAILED "Failed to enable Bed Leveling"
  142. #define STR_ERR_M428_TOO_FAR "Too far from reference point"
  143. #define STR_ERR_M303_DISABLED "PIDTEMP disabled"
  144. #define STR_M119_REPORT "Reporting endstop status"
  145. #define STR_ON "ON"
  146. #define STR_OFF "OFF"
  147. #define STR_ENDSTOP_HIT "TRIGGERED"
  148. #define STR_ENDSTOP_OPEN "open"
  149. #define STR_DUPLICATION_MODE "Duplication mode: "
  150. #define STR_SOFT_MIN " Min: "
  151. #define STR_SOFT_MAX " Max: "
  152. #define STR_SAVED_POS "Position saved"
  153. #define STR_RESTORING_POS "Restoring position"
  154. #define STR_INVALID_POS_SLOT "Invalid slot. Total: "
  155. #define STR_DONE "Done."
  156. #define STR_SD_CANT_OPEN_SUBDIR "Cannot open subdir "
  157. #define STR_SD_INIT_FAIL "No SD card"
  158. #define STR_SD_VOL_INIT_FAIL "volume.init failed"
  159. #define STR_SD_OPENROOT_FAIL "openRoot failed"
  160. #define STR_SD_CARD_OK "SD card ok"
  161. #define STR_SD_WORKDIR_FAIL "workDir open failed"
  162. #define STR_SD_OPEN_FILE_FAIL "open failed, File: "
  163. #define STR_SD_FILE_OPENED "File opened: "
  164. #define STR_SD_SIZE " Size: "
  165. #define STR_SD_FILE_SELECTED "File selected"
  166. #define STR_SD_WRITE_TO_FILE "Writing to file: "
  167. #define STR_SD_PRINTING_BYTE "SD printing byte "
  168. #define STR_SD_NOT_PRINTING "Not SD printing"
  169. #define STR_SD_ERR_WRITE_TO_FILE "error writing to file"
  170. #define STR_SD_ERR_READ "SD read error"
  171. #define STR_SD_CANT_ENTER_SUBDIR "Cannot enter subdir: "
  172. #define STR_ENDSTOPS_HIT "endstops hit: "
  173. #define STR_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented"
  174. #define STR_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented"
  175. #define STR_ERR_HOTEND_TOO_COLD "Hotend too cold"
  176. #define STR_ERR_EEPROM_WRITE "Error writing to EEPROM!"
  177. #define STR_FILAMENT_CHANGE_HEAT_LCD "Press button to heat nozzle"
  178. #define STR_FILAMENT_CHANGE_INSERT_LCD "Insert filament and press button"
  179. #define STR_FILAMENT_CHANGE_WAIT_LCD "Press button to resume"
  180. #define STR_FILAMENT_CHANGE_HEAT_M108 "Send M108 to heat nozzle"
  181. #define STR_FILAMENT_CHANGE_INSERT_M108 "Insert filament and send M108"
  182. #define STR_FILAMENT_CHANGE_WAIT_M108 "Send M108 to resume"
  183. #define STR_STOP_PRE "!! STOP called because of "
  184. #define STR_STOP_POST " error - restart with M999"
  185. #define STR_STOP_BLTOUCH "BLTouch"
  186. #define STR_STOP_UNHOMED "unhomed"
  187. #define STR_KILL_PRE "!! KILL caused by "
  188. #define STR_KILL_INACTIVE_TIME "too much inactive time - current command: "
  189. #define STR_KILL_BUTTON "KILL button/pin"
  190. // temperature.cpp strings
  191. #define STR_PID_AUTOTUNE "PID Autotune"
  192. #define STR_PID_AUTOTUNE_START " start"
  193. #define STR_PID_BAD_HEATER_ID " failed! Bad heater id"
  194. #define STR_PID_TEMP_TOO_HIGH " failed! Temperature too high"
  195. #define STR_PID_TIMEOUT " failed! timeout"
  196. #define STR_BIAS " bias: "
  197. #define STR_D_COLON " d: "
  198. #define STR_T_MIN " min: "
  199. #define STR_T_MAX " max: "
  200. #define STR_KU " Ku: "
  201. #define STR_TU " Tu: "
  202. #define STR_CLASSIC_PID " Classic PID "
  203. #define STR_KP " Kp: "
  204. #define STR_KI " Ki: "
  205. #define STR_KD " Kd: "
  206. #define STR_PID_AUTOTUNE_FINISHED " finished! Put the last Kp, Ki and Kd constants from below into Configuration.h"
  207. #define STR_PID_DEBUG " PID_DEBUG "
  208. #define STR_PID_DEBUG_INPUT ": Input "
  209. #define STR_PID_DEBUG_OUTPUT " Output "
  210. #define STR_PID_DEBUG_PTERM " pTerm "
  211. #define STR_PID_DEBUG_ITERM " iTerm "
  212. #define STR_PID_DEBUG_DTERM " dTerm "
  213. #define STR_PID_DEBUG_CTERM " cTerm "
  214. #define STR_INVALID_EXTRUDER_NUM " - Invalid extruder number !"
  215. #define STR_MPC_AUTOTUNE "MPC Autotune"
  216. #define STR_MPC_AUTOTUNE_START " start for " STR_E
  217. #define STR_MPC_AUTOTUNE_INTERRUPTED " interrupted!"
  218. #define STR_MPC_AUTOTUNE_FINISHED " finished! Put the constants below into Configuration.h"
  219. #define STR_MPC_COOLING_TO_AMBIENT "Cooling to ambient"
  220. #define STR_MPC_HEATING_PAST_200 "Heating to over 200C"
  221. #define STR_MPC_MEASURING_AMBIENT "Measuring ambient heatloss at "
  222. #define STR_MPC_TEMPERATURE_ERROR "Temperature error"
  223. #define STR_HEATER_BED "bed"
  224. #define STR_HEATER_CHAMBER "chamber"
  225. #define STR_COOLER "cooler"
  226. #define STR_MOTHERBOARD "motherboard"
  227. #define STR_PROBE "probe"
  228. #define STR_REDUNDANT "redundant "
  229. #define STR_LASER_TEMP "laser temperature"
  230. #define STR_STOPPED_HEATER ", system stopped! Heater_ID: "
  231. #define STR_REDUNDANCY "Heater switched off. Temperature difference between temp sensors is too high !"
  232. #define STR_T_HEATING_FAILED "Heating failed"
  233. #define STR_T_THERMAL_RUNAWAY "Thermal Runaway"
  234. #define STR_T_MALFUNCTION "Thermal Malfunction"
  235. #define STR_T_MAXTEMP "MAXTEMP triggered"
  236. #define STR_T_MINTEMP "MINTEMP triggered"
  237. #define STR_ERR_PROBING_FAILED "Probing Failed"
  238. #define STR_ZPROBE_OUT_SER "Z Probe Past Bed"
  239. // Debug
  240. #define STR_DEBUG_PREFIX "DEBUG:"
  241. #define STR_DEBUG_OFF "off"
  242. #define STR_DEBUG_ECHO "ECHO"
  243. #define STR_DEBUG_INFO "INFO"
  244. #define STR_DEBUG_ERRORS "ERRORS"
  245. #define STR_DEBUG_DRYRUN "DRYRUN"
  246. #define STR_DEBUG_COMMUNICATION "COMMUNICATION"
  247. #define STR_DEBUG_DETAIL "DETAIL"
  248. #define STR_PRINTER_LOCKED "Printer locked! (Unlock with M511 or LCD)"
  249. #define STR_WRONG_PASSWORD "Incorrect Password"
  250. #define STR_PASSWORD_TOO_LONG "Password too long"
  251. #define STR_PASSWORD_REMOVED "Password removed"
  252. #define STR_REMINDER_SAVE_SETTINGS "Remember to save!"
  253. #define STR_PASSWORD_SET "Password is "
  254. // Settings Report Strings
  255. #define STR_Z_AUTO_ALIGN "Z Auto-Align"
  256. #define STR_BACKLASH_COMPENSATION "Backlash compensation"
  257. #define STR_S_SEG_PER_SEC "S<seg-per-sec>"
  258. #define STR_DELTA_SETTINGS "Delta (L<diagonal-rod> R<radius> H<height> S<seg-per-sec> XYZ<tower-angle-trim> ABC<rod-trim>)"
  259. #define STR_SCARA_SETTINGS "SCARA"
  260. #define STR_POLARGRAPH_SETTINGS "Polargraph"
  261. #define STR_SCARA_P_T_Z "P<theta-psi-offset> T<theta-offset> Z<home-offset>"
  262. #define STR_ENDSTOP_ADJUSTMENT "Endstop adjustment"
  263. #define STR_SKEW_FACTOR "Skew Factor"
  264. #define STR_FILAMENT_SETTINGS "Filament settings"
  265. #define STR_MAX_ACCELERATION "Max Acceleration (units/s2)"
  266. #define STR_MAX_FEEDRATES "Max feedrates (units/s)"
  267. #define STR_ACCELERATION_P_R_T "Acceleration (units/s2) (P<print-accel> R<retract-accel> T<travel-accel>)"
  268. #define STR_TOOL_CHANGING "Tool-changing"
  269. #define STR_HOTEND_OFFSETS "Hotend offsets"
  270. #define STR_SERVO_ANGLES "Servo Angles"
  271. #define STR_HOTEND_PID "Hotend PID"
  272. #define STR_BED_PID "Bed PID"
  273. #define STR_CHAMBER_PID "Chamber PID"
  274. #define STR_STEPS_PER_UNIT "Steps per unit"
  275. #define STR_LINEAR_ADVANCE "Linear Advance"
  276. #define STR_CONTROLLER_FAN "Controller Fan"
  277. #define STR_STEPPER_MOTOR_CURRENTS "Stepper motor currents"
  278. #define STR_RETRACT_S_F_Z "Retract (S<length> F<feedrate> Z<lift>)"
  279. #define STR_RECOVER_S_F "Recover (S<length> F<feedrate>)"
  280. #define STR_AUTO_RETRACT_S "Auto-Retract (S<enable>)"
  281. #define STR_FILAMENT_LOAD_UNLOAD "Filament load/unload"
  282. #define STR_POWER_LOSS_RECOVERY "Power-loss recovery"
  283. #define STR_FILAMENT_RUNOUT_SENSOR "Filament runout sensor"
  284. #define STR_DRIVER_STEPPING_MODE "Driver stepping mode"
  285. #define STR_STEPPER_DRIVER_CURRENT "Stepper driver current"
  286. #define STR_HYBRID_THRESHOLD "Hybrid Threshold"
  287. #define STR_STALLGUARD_THRESHOLD "StallGuard threshold"
  288. #define STR_HOME_OFFSET "Home offset"
  289. #define STR_SOFT_ENDSTOPS "Soft endstops"
  290. #define STR_MATERIAL_HEATUP "Material heatup parameters"
  291. #define STR_LCD_CONTRAST "LCD Contrast"
  292. #define STR_LCD_BRIGHTNESS "LCD Brightness"
  293. #define STR_DISPLAY_SLEEP "Display Sleep"
  294. #define STR_UI_LANGUAGE "UI Language"
  295. #define STR_Z_PROBE_OFFSET "Z-Probe Offset"
  296. #define STR_TEMPERATURE_UNITS "Temperature Units"
  297. #define STR_USER_THERMISTORS "User thermistors"
  298. #define STR_DELAYED_POWEROFF "Delayed poweroff"
  299. //
  300. // Endstop Names used by Endstops::report_states
  301. //
  302. #define STR_X_MIN "x_min"
  303. #define STR_X_MAX "x_max"
  304. #define STR_X2_MIN "x2_min"
  305. #define STR_X2_MAX "x2_max"
  306. #if HAS_Y_AXIS
  307. #define STR_Y_MIN "y_min"
  308. #define STR_Y_MAX "y_max"
  309. #define STR_Y2_MIN "y2_min"
  310. #define STR_Y2_MAX "y2_max"
  311. #endif
  312. #if HAS_Z_AXIS
  313. #define STR_Z_MIN "z_min"
  314. #define STR_Z_MAX "z_max"
  315. #define STR_Z2_MIN "z2_min"
  316. #define STR_Z2_MAX "z2_max"
  317. #define STR_Z3_MIN "z3_min"
  318. #define STR_Z3_MAX "z3_max"
  319. #define STR_Z4_MIN "z4_min"
  320. #define STR_Z4_MAX "z4_max"
  321. #endif
  322. #define STR_Z_PROBE "z_probe"
  323. #define STR_PROBE_EN "probe_en"
  324. #define STR_FILAMENT "filament"
  325. // General axis names
  326. #define STR_X "X"
  327. #define STR_Y "Y"
  328. #define STR_Z "Z"
  329. #define STR_E "E"
  330. #if IS_KINEMATIC
  331. #define STR_A "A"
  332. #define STR_B "B"
  333. #define STR_C "C"
  334. #else
  335. #define STR_A "X"
  336. #define STR_B "Y"
  337. #define STR_C "Z"
  338. #endif
  339. #define STR_X2 "X2"
  340. #define STR_Y2 "Y2"
  341. #define STR_Z2 "Z2"
  342. #define STR_Z3 "Z3"
  343. #define STR_Z4 "Z4"
  344. // Extra Axis and Endstop Names
  345. #if HAS_I_AXIS
  346. #if AXIS4_NAME == 'A'
  347. #define STR_I "A"
  348. #define STR_I_MIN "a_min"
  349. #define STR_I_MAX "a_max"
  350. #elif AXIS4_NAME == 'B'
  351. #define STR_I "B"
  352. #define STR_I_MIN "b_min"
  353. #define STR_I_MAX "b_max"
  354. #elif AXIS4_NAME == 'C'
  355. #define STR_I "C"
  356. #define STR_I_MIN "c_min"
  357. #define STR_I_MAX "c_max"
  358. #elif AXIS4_NAME == 'U'
  359. #define STR_I "U"
  360. #define STR_I_MIN "u_min"
  361. #define STR_I_MAX "u_max"
  362. #elif AXIS4_NAME == 'V'
  363. #define STR_I "V"
  364. #define STR_I_MIN "v_min"
  365. #define STR_I_MAX "v_max"
  366. #elif AXIS4_NAME == 'W'
  367. #define STR_I "W"
  368. #define STR_I_MIN "w_min"
  369. #define STR_I_MAX "w_max"
  370. #else
  371. #error "AXIS4_NAME can only be one of 'A', 'B', 'C', 'U', 'V', or 'W'."
  372. #endif
  373. #else
  374. #define STR_I ""
  375. #endif
  376. #if HAS_J_AXIS
  377. #if AXIS5_NAME == 'B'
  378. #define STR_J "B"
  379. #define STR_J_MIN "b_min"
  380. #define STR_J_MAX "b_max"
  381. #elif AXIS5_NAME == 'C'
  382. #define STR_J "C"
  383. #define STR_J_MIN "c_min"
  384. #define STR_J_MAX "c_max"
  385. #elif AXIS5_NAME == 'U'
  386. #define STR_J "U"
  387. #define STR_J_MIN "u_min"
  388. #define STR_J_MAX "u_max"
  389. #elif AXIS5_NAME == 'V'
  390. #define STR_J "V"
  391. #define STR_J_MIN "v_min"
  392. #define STR_J_MAX "v_max"
  393. #elif AXIS5_NAME == 'W'
  394. #define STR_J "W"
  395. #define STR_J_MIN "w_min"
  396. #define STR_J_MAX "w_max"
  397. #else
  398. #error "AXIS5_NAME can only be one of 'B', 'C', 'U', 'V', or 'W'."
  399. #endif
  400. #else
  401. #define STR_J ""
  402. #endif
  403. #if HAS_K_AXIS
  404. #if AXIS6_NAME == 'C'
  405. #define STR_K "C"
  406. #define STR_K_MIN "c_min"
  407. #define STR_K_MAX "c_max"
  408. #elif AXIS6_NAME == 'U'
  409. #define STR_K "U"
  410. #define STR_K_MIN "u_min"
  411. #define STR_K_MAX "u_max"
  412. #elif AXIS6_NAME == 'V'
  413. #define STR_K "V"
  414. #define STR_K_MIN "v_min"
  415. #define STR_K_MAX "v_max"
  416. #elif AXIS6_NAME == 'W'
  417. #define STR_K "W"
  418. #define STR_K_MIN "w_min"
  419. #define STR_K_MAX "w_max"
  420. #else
  421. #error "AXIS6_NAME can only be one of 'C', 'U', 'V', or 'W'."
  422. #endif
  423. #else
  424. #define STR_K ""
  425. #endif
  426. #if HAS_U_AXIS
  427. #if AXIS7_NAME == 'U'
  428. #define STR_U "U"
  429. #define STR_U_MIN "u_min"
  430. #define STR_U_MAX "u_max"
  431. #elif AXIS7_NAME == 'V'
  432. #define STR_U "V"
  433. #define STR_U_MIN "v_min"
  434. #define STR_U_MAX "v_max"
  435. #elif AXIS7_NAME == 'W'
  436. #define STR_U "W"
  437. #define STR_U_MIN "w_min"
  438. #define STR_U_MAX "w_max"
  439. #else
  440. #error "AXIS7_NAME can only be one of 'U', 'V', or 'W'."
  441. #endif
  442. #else
  443. #define STR_U ""
  444. #endif
  445. #if HAS_V_AXIS
  446. #if AXIS8_NAME == 'V'
  447. #define STR_V "V"
  448. #define STR_V_MIN "v_min"
  449. #define STR_V_MAX "v_max"
  450. #elif AXIS8_NAME == 'W'
  451. #define STR_V "W"
  452. #define STR_V_MIN "w_min"
  453. #define STR_V_MAX "w_max"
  454. #else
  455. #error "AXIS8_NAME can only be one of 'V', or 'W'."
  456. #endif
  457. #else
  458. #define STR_V ""
  459. #endif
  460. #if HAS_W_AXIS
  461. #if AXIS9_NAME == 'W'
  462. #define STR_W "W"
  463. #define STR_W_MIN "w_min"
  464. #define STR_W_MAX "w_max"
  465. #else
  466. #error "AXIS9_NAME can only be 'W'."
  467. #endif
  468. #else
  469. #define STR_W ""
  470. #endif
  471. #if EITHER(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL)
  472. // Custom characters defined in the first 8 characters of the LCD
  473. #define LCD_STR_BEDTEMP "\x00" // Print only as a char. This will have 'unexpected' results when used in a string!
  474. #define LCD_STR_DEGREE "\x01"
  475. #define LCD_STR_THERMOMETER "\x02" // Still used with string concatenation
  476. #define LCD_STR_UPLEVEL "\x03"
  477. #define LCD_STR_REFRESH "\x04"
  478. #define LCD_STR_FOLDER "\x05"
  479. #define LCD_STR_FEEDRATE "\x06"
  480. #define LCD_STR_CLOCK "\x07"
  481. #define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
  482. #else
  483. //
  484. // Custom characters from Marlin_symbols.fon which was merged into ISO10646-0-3.bdf
  485. // \x00 intentionally skipped to avoid problems in strings
  486. //
  487. #define LCD_STR_REFRESH "\x01"
  488. #define LCD_STR_FOLDER "\x02"
  489. #define LCD_STR_ARROW_RIGHT "\x03"
  490. #define LCD_STR_UPLEVEL "\x04"
  491. #define LCD_STR_CLOCK "\x05"
  492. #define LCD_STR_FEEDRATE "\x06"
  493. #define LCD_STR_BEDTEMP "\x07"
  494. #define LCD_STR_THERMOMETER "\x08"
  495. #define LCD_STR_DEGREE "\x09"
  496. #define LCD_STR_SPECIAL_MAX '\x09'
  497. // Maximum here is 0x1F because 0x20 is ' ' (space) and the normal charsets begin.
  498. // Better stay below 0x10 because DISPLAY_CHARSET_HD44780_WESTERN begins here.
  499. // Symbol characters
  500. #define LCD_STR_FILAM_DIA "\xF8"
  501. #define LCD_STR_FILAM_MUL "\xA4"
  502. #endif
  503. /**
  504. * Tool indexes for LCD display only
  505. *
  506. * By convention the LCD shows "E1" for the first extruder.
  507. * However, internal to Marlin E0/T0 is the first tool, and
  508. * most board silkscreens say "E0." Zero-based labels will
  509. * make these indexes consistent but this defies expectation.
  510. */
  511. #if ENABLED(NUMBER_TOOLS_FROM_0)
  512. #define LCD_FIRST_TOOL 0
  513. #define STR_N0 "0"
  514. #define STR_N1 "1"
  515. #define STR_N2 "2"
  516. #define STR_N3 "3"
  517. #define STR_N4 "4"
  518. #define STR_N5 "5"
  519. #define STR_N6 "6"
  520. #define STR_N7 "7"
  521. #else
  522. #define LCD_FIRST_TOOL 1
  523. #define STR_N0 "1"
  524. #define STR_N1 "2"
  525. #define STR_N2 "3"
  526. #define STR_N3 "4"
  527. #define STR_N4 "5"
  528. #define STR_N5 "6"
  529. #define STR_N6 "7"
  530. #define STR_N7 "8"
  531. #endif
  532. #define STR_E0 STR_E STR_N0
  533. #define STR_E1 STR_E STR_N1
  534. #define STR_E2 STR_E STR_N2
  535. #define STR_E3 STR_E STR_N3
  536. #define STR_E4 STR_E STR_N4
  537. #define STR_E5 STR_E STR_N5
  538. #define STR_E6 STR_E STR_N6
  539. #define STR_E7 STR_E STR_N7
  540. // Include localized LCD Menu Messages
  541. #define LANGUAGE_DATA_INCL_(M) STRINGIFY_(fontdata/langdata_##M.h)
  542. #define LANGUAGE_DATA_INCL(M) LANGUAGE_DATA_INCL_(M)
  543. #define LANGUAGE_INCL_(M) STRINGIFY_(../lcd/language/language_##M.h)
  544. #define LANGUAGE_INCL(M) LANGUAGE_INCL_(M)
  545. // Use superscripts, if possible. Evaluated at point of use.
  546. #define SUPERSCRIPT_TWO TERN(NOT_EXTENDED_ISO10646_1_5X7, "^2", "²")
  547. #define SUPERSCRIPT_THREE TERN(NOT_EXTENDED_ISO10646_1_5X7, "^3", "³")
  548. #include "multi_language.h" // Allow multiple languages
  549. #include "../lcd/language/language_en.h"
  550. #include LANGUAGE_INCL(LCD_LANGUAGE)
  551. #include LANGUAGE_INCL(LCD_LANGUAGE_2)
  552. #include LANGUAGE_INCL(LCD_LANGUAGE_3)
  553. #include LANGUAGE_INCL(LCD_LANGUAGE_4)
  554. #include LANGUAGE_INCL(LCD_LANGUAGE_5)
  555. #if NONE(DISPLAY_CHARSET_ISO10646_1, \
  556. DISPLAY_CHARSET_ISO10646_5, \
  557. DISPLAY_CHARSET_ISO10646_KANA, \
  558. DISPLAY_CHARSET_ISO10646_GREEK, \
  559. DISPLAY_CHARSET_ISO10646_CN, \
  560. DISPLAY_CHARSET_ISO10646_TR, \
  561. DISPLAY_CHARSET_ISO10646_PL, \
  562. DISPLAY_CHARSET_ISO10646_CZ, \
  563. DISPLAY_CHARSET_ISO10646_SK)
  564. #define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays.
  565. #endif