Marlin Localization For Chinese Simplification

Marlin Firmware Localization For Chinese Simplification

Long time ago, I tweeted Marlin firmware (@MarlinFirmware) to merge my modification for better Chinese Simplification supported. But it looked like those guys had no time to apply it. Until now, the newest released Marlin firmware's Chinese localization sucks.

Now I list my code here. Hope it's helpful for others.

language_cn.h

/**
 * Marlin 3D Printer Firmware
 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 *
 * Based on Sprinter and grbl.
 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 *
 */

/**
 * Chinese
 *
 * LCD Menu Messages
 * See also http://marlinfw.org/docs/development/lcd_language.html
 * Translated by igame.
 */
#ifndef LANGUAGE_CN_H
#define LANGUAGE_CN_H

#define DISPLAY_CHARSET_ISO10646_CN

#define WELCOME_MSG                         "\xa4\xa5\x82\xa7"
#define MSG_SD_INSERTED                     "SD \xa8\xa9\xaa\xab"
#define MSG_SD_REMOVED                      "SD \xa8\xa9\xac\xad"
#define MSG_MAIN                            "\xae\xaf\xb0"
#define MSG_AUTOSTART                       "\xb1\xb2\xb3\xb4"
#define MSG_DISABLE_STEPPERS                "\xb5\xb6\xb7\xb8\xb9\xba"
#define MSG_AUTO_HOME                       "\xbb\xbc\xbd"
#define MSG_LEVEL_BED_HOMING                "\xc4\xc7\xbb\xbc\xbd"
#define MSG_LEVEL_BED_WAITING               "\xc4\xc7\x82\xa7"
#define MSG_LEVEL_BED_DONE                  "\xcf\xd0\x80\x81"
#define MSG_SET_HOME_OFFSETS                "\xbe\xbf\xbb\xbc\xbd\xc0\xc1"
#define MSG_HOME_OFFSETS_APPLIED            "\xa9\x84\x85\xc0\xc1"
#define MSG_SET_ORIGIN                      "\xbe\xbf\xbc\xbd"
#define MSG_PREHEAT_1                       "\xc3\xc4 PLA"
#define MSG_PREHEAT_1_N                     MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL                   MSG_PREHEAT_1 " \xc5\xc6"
#define MSG_PREHEAT_1_BEDONLY               MSG_PREHEAT_1 " \xc4\xc7"
#define MSG_PREHEAT_1_SETTINGS              MSG_PREHEAT_1 " \xbe\xbf"
#define MSG_PREHEAT_2                       "\xc3\xc4 ABS"
#define MSG_PREHEAT_2_N                     MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL                   MSG_PREHEAT_2 " \xc5\xc6"
#define MSG_PREHEAT_2_BEDONLY               MSG_PREHEAT_2 " \xc4\xc7"
#define MSG_PREHEAT_2_SETTINGS              MSG_PREHEAT_2 " \xbe\xbf"
#define MSG_COOLDOWN                        "\xc8\xc9"
#define MSG_SWITCH_PS_ON                    "\xb9\xcb\xca\xb3"
#define MSG_SWITCH_PS_OFF                   "\xb9\xcb\xb5\xb6"
#define MSG_EXTRUDE                         "\xcc\xad"
#define MSG_RETRACT                         "\xbb\xcd"
#define MSG_MOVE_AXIS                       "\xc1\xb2\xce"
#define MSG_BED_LEVELING                    "\xc4\xc7\xcf\xd0"
#define MSG_LEVEL_BED                       "\xcf\xd0\xc4\xc7"
#define MSG_MOVE_X                          "\xc1\xb2 X"
#define MSG_MOVE_Y                          "\xc1\xb2 Y"
#define MSG_MOVE_Z                          "\xc1\xb2 Z"
#define MSG_MOVE_E                          "\xcc\xad\xba"
#define MSG_MOVE_01MM                       "\xc1\xb2 0.1mm"
#define MSG_MOVE_1MM                        "\xc1\xb2 1mm"
#define MSG_MOVE_10MM                       "\xc1\xb2 10mm"
#define MSG_SPEED                           "\xd1\xd2"
#define MSG_NOZZLE                          "\xd3\xd4"
#define MSG_BED                             "\xc4\xc7"
#define MSG_FAN_SPEED                       "\xd5\xd6\xd1\xd2"
#define MSG_FLOW                            "\xcc\xad\xd1\xd2"
#define MSG_CONTROL                         "\xd8\xd9"
#define MSG_MIN                             LCD_STR_THERMOMETER " \xda\xdb"
#define MSG_MAX                             LCD_STR_THERMOMETER " \xda\xdc"
#define MSG_FACTOR                          LCD_STR_THERMOMETER " \xdd\xde"
#define MSG_AUTOTEMP                        "\xb1\xb2\xc9\xd8"
#define MSG_ON                              "\xb3 "  // intentional space to shift wide symbol to the left
#define MSG_OFF                             "\xb5 "  // intentional space to shift wide symbol to the left
#define MSG_PID_P                           "PID-P"
#define MSG_PID_I                           "PID-I"
#define MSG_PID_D                           "PID-D"
#define MSG_PID_C                           "PID-C"
#define MSG_ACC                             "\x86\xd1\xd2"
#define MSG_JERK                            "\x87\xb2"
#define MSG_VX_JERK                         "X \x87\xb2\x86\xd1\xd2"
#define MSG_VY_JERK                         "Y \x87\xb2\x86\xd1\xd2"
#define MSG_VZ_JERK                         "Z \x87\xb2\x86\xd1\xd2"
#define MSG_VE_JERK                         "E \x87\xb2\x86\xd1\xd2"
#define MSG_VMAX                            "\xda\xdc\xd1\xd2 "
#define MSG_VMIN                            "\xda\xdb\xd1\xd2"
#define MSG_VTRAV_MIN                       "\xda\xdb\x83\x8b\xd1\xd2"
#define MSG_AMAX                            "\xda\xdc\x86\xd1\xd2 "
#define MSG_A_RETRACT                       "\xbb\xcd\x86\xd1\xd2"
#define MSG_A_TRAVEL                         "\x83\x8b\x86\xd1\xd2"
#define MSG_STEPS_PER_MM                    "\x8d\xb7 /mm"
#define MSG_XSTEPS                          "X \x8d\xb7 /mm"
#define MSG_YSTEPS                          "Y \x8d\xb7 /mm"
#define MSG_ZSTEPS                          "Z \x8d\xb7 /mm"
#define MSG_ESTEPS                          "E \x8d\xb7 /mm"
#define MSG_E1STEPS                         "\xcc\xad\xba 1 \x8d\xb7 /mm"
#define MSG_E2STEPS                         "\xcc\xad\xba 2 \x8d\xb7 /mm"
#define MSG_E3STEPS                         "\xcc\xad\xba 3 \x8d\xb7 /mm"
#define MSG_E4STEPS                         "\xcc\xad\xba 4 \x8d\xb7 /mm"
#define MSG_E5STEPS                         "\xcc\xad\xba 5 \x8d\xb7 /mm"
#define MSG_TEMPERATURE                     "\xc9\xd2"
#define MSG_MOTION                          "\xdf\xb2"
#define MSG_FILAMENT                        "\xe0\xe1"
#define MSG_VOLUMETRIC_ENABLED              "\x8f mm3 \xcc\xad"
#define MSG_FILAMENT_DIAM                   "\xe0\xe1\x89\x8a"
#define MSG_CONTRAST                        "\xe2\xe3\xd2"
#define MSG_STORE_EEPROM                    "\xe6\xf8\xbe\xc2"
#define MSG_LOAD_EEPROM                     "\x86\xe4\xbe\xc2"
#define MSG_RESTORE_FAILSAFE                "\xe7\xe8\xad\xe9\xbe\xbf"
#define MSG_REFRESH                         "\x8c\xeb"
#define MSG_WATCH                           "\xec\xed\xee\xef"
#define MSG_PREPARE                         "\xa4\xa5"
#define MSG_TUNE                            "\xcf\xf0"
#define MSG_PAUSE_PRINT                     "\xf1\xf2\xca\xf3"
#define MSG_RESUME_PRINT                    "\xf4\xf5\xca\xf3"
#define MSG_STOP_PRINT                      "\xf2\xf6\xca\xf3"
#define MSG_CARD_MENU                       "\xca\xf3"
#define MSG_NO_CARD                         "\xf9\xa8"
#define MSG_DWELL                           "\xfa\xfb..."
#define MSG_USERWAIT                        "\xfc\xfd\xfe\xff..."
#define MSG_RESUMING                        "\xe7\xe8\xca\xf3"
#define MSG_PRINT_ABORTED                   "\xa1\xf6\xca\xf3"
#define MSG_NO_MOVE                         "\xf9\xb2\xff."
#define MSG_KILLED                          "\xa9\xa1\xf6. "
#define MSG_STOPPED                         "\xa9\xf2\xf6. "
#define MSG_CONTROL_RETRACT                 "\xbb\xcd mm"
#define MSG_CONTROL_RETRACT_SWAP            "\x99\x9a\xbb\xcd.mm"
#define MSG_CONTROL_RETRACTF                "\xbb\xcd\xd1\xd2"
#define MSG_CONTROL_RETRACT_ZLIFT           "\xf7\xf2\x9b\xd2 mm"
#define MSG_CONTROL_RETRACT_RECOVER         "\x8e\xbb\xcd\x88\xd2 mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "\x99\x9a\x8e\xbb\xcd\x88\xd2 mm"
#define MSG_CONTROL_RETRACT_RECOVERF        "\xbb\xcd\xe7\xe8\xd1\xd2"
#define MSG_AUTORETRACT                     "\xb1\xb2\xbb\xcd."
#define MSG_FILAMENTCHANGE                  "\xea\x92\xe0\xe1"
#define MSG_INIT_SDCARD                     "\x93\xb4\x94\xe6\xf8\xa8"
#define MSG_CNG_SDCARD                      "\x9a\x92\xe6\xf8\xa8"
#define MSG_ZPROBE_OUT                      "Z \x90\x91\xa2\xee"
#define MSG_HOME                            "\xbb\xbc\xbd"  // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST                           "\x95\xa0"
#define MSG_ZPROBE_ZOFFSET                  "Z \x90\x91\xc0\xc1"
#define MSG_BABYSTEP_X                            "\x8d\xcf X"
#define MSG_BABYSTEP_Y                            "\x8d\xcf Y"
#define MSG_BABYSTEP_Z                            "\x8d\xcf Z"
#define MSG_ENDSTOP_ABORT                   "\x96\x97\xa1\xf6"
#define MSG_HEATING_FAILED_LCD              "\x86\xc4\x9f\x9e"
#define MSG_ERR_REDUNDANT_TEMP              "\xad\x98 : REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY                 "\xc9\xd8\xad\x98"
#define MSG_ERR_MAXTEMP                     "\xad\x98 : \x9b\xc9"
#define MSG_ERR_MINTEMP                     "\xad\x98 : \x9c\xc9"
#define MSG_ERR_MAXTEMP_BED                 "\xad\x98 : \xc4\xc7"
#define MSG_DELTA_CALIBRATE                 "Delta \x9d\xa4"
#define MSG_DELTA_CALIBRATE_X               "\x9d\xa4 X"
#define MSG_DELTA_CALIBRATE_Y               "\x9d\xa4 Y"
#define MSG_DELTA_CALIBRATE_Z               "\x9d\xa4 Z"
#define MSG_DELTA_CALIBRATE_CENTER          "\x9d\xa4 \xa1\xa3"

#define MSG_VELOCITY                        "\xd1\xd2"
#define MSG_ACCELERATION                    "\x86\xd1\xd2"
#define MSG_INIT_EEPROM                     "\xe7\xe8 EEPROM"
#define MSG_PREHEAT_1_END                   MSG_PREHEAT_1 " \xd3\xd4"
#define MSG_PREHEAT_2_END                   MSG_PREHEAT_2 " \xd3\xd4"

#endif // LANGUAGE_CN_H

dogm_font_data_ISO10646_CN.h

/*
  Fontname: ISO10646_CN
  Copyright: A. Hardtung, public domain
  Capital A Height: 7, '1' Height: 7
  Calculated Max Values w=12 h=11 x= 2 y= 5 dx=12 dy= 0 ascent=10 len=22
  Font Bounding box     w=12 h=11 x= 0 y=-2
  Calculated Min Values           x= 0 y=-1 dx= 0 dy= 0
  Pure Font   ascent = 7 descent=-1
  X Font      ascent = 7 descent=-1
  Max Font    ascent =10 descent=-1
  Generated by igame with bdf2u8g and font-wip.
*/
#include 
const u8g_fntpgm_uint8_t ISO10646_CN[4701] U8G_FONT_SECTION("ISO10646_CN") = {
  0,12,11,0,254,7,1,146,3,33,32,255,255,10,255,7,
  255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
  128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
  0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
  120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
  64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
  2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
  64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
  32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
  5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
  64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
  192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
  0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
  192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
  128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
  5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
  6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
  112,128,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
  32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
  112,5,7,7,6,0,0,112,136,136,120,8,8,112,2,5,
  5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
  192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
  32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,0,
  0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
  8,16,32,0,32,5,7,7,6,0,0,112,136,8,104,168,
  168,112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,
  7,7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,
  0,0,112,136,128,128,128,136,112,5,7,7,6,0,0,240,
  136,136,136,136,136,240,5,7,7,6,0,0,248,128,128,240,
  128,128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,
  5,7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,
  6,0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,
  128,128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,
  16,16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,
  136,5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,
  7,6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,
  0,136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,
  136,136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,
  128,128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,
  7,7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,
  0,0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,
  32,32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,
  136,136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,
  5,7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,
  6,0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,
  136,136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,
  32,64,128,248,3,7,7,6,0,0,224,128,128,128,128,128,
  224,5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,
  0,0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,
  80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,
  64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,
  0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,
  128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,
  120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,
  0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,
  136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,
  136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,
  8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,
  6,1,0,128,128,144,160,192,160,144,3,7,7,6,1,0,
  192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,
  168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,
  6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,
  136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,
  5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,
  0,112,128,112,8,240,4,7,7,6,0,0,64,64,224,64,
  64,64,48,5,5,5,6,0,0,136,136,136,152,104,5,5,
  5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,
  136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,
  6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,
  0,248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,
  64,64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,
  3,7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,
  6,0,3,104,144,0,0,0,6,0,0,11,11,22,12,0,
  255,4,0,127,224,64,32,159,64,0,0,63,192,10,0,18,
  0,18,0,34,32,67,224,11,11,22,12,0,255,4,64,63,
  192,34,0,33,0,61,32,37,64,37,64,68,128,68,128,137,
  96,144,32,11,11,22,12,0,255,34,128,250,64,7,224,114,
  128,82,128,114,128,34,128,114,128,170,128,36,160,100,224,9,
  11,22,12,1,255,8,0,255,128,162,128,65,0,128,128,62,
  0,8,0,8,0,8,0,8,0,255,128,10,11,22,12,0,
  255,8,0,63,192,32,0,32,64,36,64,50,128,74,128,73,
  0,68,0,132,0,31,192,11,11,22,12,0,255,63,224,34,
  32,34,32,47,160,34,32,47,160,34,32,66,32,66,32,130,
  32,130,96,11,11,22,12,0,255,32,0,32,0,125,224,37,
  32,37,32,37,32,37,32,69,32,69,224,132,0,24,0,11,
  11,22,12,0,255,32,128,34,128,241,128,36,128,50,128,33,
  128,97,224,174,128,32,128,32,128,97,128,10,11,22,12,1,
  255,34,0,36,0,40,0,48,0,255,128,48,0,40,0,36,
  0,34,0,33,0,48,192,9,11,22,12,1,255,8,0,127,
  0,8,0,190,0,170,0,182,0,170,0,170,0,190,0,128,
  0,255,128,11,11,22,12,0,255,47,128,64,128,145,0,35,
  0,69,0,200,128,87,64,66,32,66,0,66,0,95,192,11,
  11,22,12,0,255,1,0,241,0,87,192,85,64,87,192,121,
  0,11,0,105,0,138,128,10,64,52,32,11,11,22,12,0,
  255,124,32,68,160,124,160,72,160,72,160,126,160,170,160,170,
  32,136,32,136,32,136,96,12,10,20,12,0,0,68,32,181,
  64,95,112,128,144,95,80,64,32,78,32,74,80,75,80,82,
  80,11,11,22,12,0,255,3,0,28,0,32,0,63,128,32,
  128,41,0,37,0,70,0,69,0,72,128,144,96,11,11,22,
  12,0,255,33,0,39,224,244,32,34,64,55,224,34,64,98,
  64,161,128,33,128,66,64,4,32,12,10,20,12,0,0,47,
  224,42,160,37,64,249,32,39,192,49,0,99,128,165,64,37,
  32,73,16,10,10,20,12,0,0,33,0,65,0,121,0,129,
  0,119,192,33,0,113,0,33,0,33,0,49,0,11,10,20,
  12,0,0,33,0,38,128,241,0,39,192,36,64,53,64,111,
  224,161,0,34,128,100,96,11,10,20,12,0,0,64,0,243,
  224,17,32,33,32,73,32,177,32,42,32,34,32,36,32,40,
  64,11,10,20,12,0,0,16,0,20,0,36,64,68,128,165,
  0,38,0,36,0,44,32,52,32,35,224,10,11,22,12,1,
  255,34,0,255,192,16,0,32,0,127,0,65,0,127,0,65,
  0,127,0,65,0,127,0,10,11,22,12,1,255,239,128,168,
  128,239,128,168,128,175,128,236,0,138,64,137,128,139,0,140,
  128,136,64,11,11,22,12,0,255,17,0,33,0,79,224,164,
  64,36,64,36,64,36,64,34,128,35,128,33,0,47,224,11,
  11,22,12,0,255,33,64,35,224,65,64,185,64,35,224,248,
  0,35,224,34,32,35,224,42,32,19,224,9,10,20,12,1,
  0,8,0,127,0,34,0,65,0,162,128,20,0,8,0,20,
  0,34,0,65,0,8,10,10,12,1,0,66,231,66,231,66,
  165,127,85,75,127,9,10,20,12,1,0,8,0,127,0,20,
  0,28,0,255,128,128,128,190,128,162,128,190,128,129,128,12,
  10,20,12,0,0,16,192,39,0,72,0,137,0,79,224,73,
  0,72,128,72,128,73,80,77,32,11,10,20,12,0,0,33,
  0,39,192,242,128,36,32,122,128,98,128,162,128,33,0,34,
  128,36,96,11,11,22,12,0,255,249,0,138,0,171,224,172,
  64,170,64,170,64,170,64,170,128,33,0,82,128,140,96,11,
  11,22,12,0,255,36,0,36,0,63,128,68,0,132,0,4,
  0,255,224,10,0,17,0,32,128,192,96,11,11,22,12,0,
  255,36,0,36,0,63,192,68,0,4,0,255,224,9,0,9,
  0,17,32,33,32,64,224,9,10,20,12,1,0,8,0,8,
  0,255,128,136,128,136,128,255,128,8,0,8,0,8,0,8,
  0,12,10,20,12,0,0,32,32,112,144,35,224,250,128,34,
  64,179,80,226,32,180,80,140,128,131,224,11,9,18,12,0,
  0,1,0,32,128,72,64,132,32,162,32,32,0,16,64,16,
  64,15,128,11,11,22,12,0,255,4,128,143,224,73,0,25,
  0,47,192,9,0,9,0,47,192,73,0,137,0,15,224,11,
  11,22,12,0,255,16,0,63,128,81,0,14,0,49,128,192,
  96,63,128,36,128,63,128,36,128,63,128,11,11,22,12,0,
  255,1,0,131,128,65,0,231,192,65,0,79,224,69,64,86,
  192,101,64,68,64,4,192,11,11,22,12,0,255,34,32,71,
  64,146,128,239,224,34,0,71,192,236,64,7,192,52,64,199,
  192,4,64,11,11,22,12,0,255,8,0,15,192,8,0,8,
  0,255,224,8,0,14,0,9,128,8,64,8,0,8,0,10,
  11,22,12,0,255,255,128,0,128,0,128,128,128,128,128,255,
  128,128,0,128,0,128,64,128,64,127,192,11,11,22,12,0,
  255,71,192,65,0,239,224,65,0,69,0,105,96,201,32,77,
  96,73,32,79,224,200,32,11,11,22,12,0,255,8,0,4,
  0,4,0,10,0,10,0,10,0,17,0,17,0,32,128,64,
  64,128,32,11,11,22,12,0,255,34,64,34,0,247,224,34,
  0,35,224,53,32,229,32,37,64,40,128,41,64,114,32,11,
  10,20,12,0,0,68,64,68,64,68,64,127,192,4,0,4,
  0,132,32,132,32,132,32,255,224,11,11,22,12,0,255,4,
  0,0,0,127,192,4,0,4,0,4,0,127,192,4,0,4,
  0,4,0,255,224,11,11,22,12,0,255,255,224,17,0,1,
  192,254,0,72,128,37,0,4,0,255,224,21,0,36,128,196,
  96,11,11,22,12,0,255,17,0,127,192,68,64,127,192,68,
  64,127,192,4,0,255,224,4,0,4,0,4,0,9,11,22,
  12,0,255,16,0,255,128,128,128,128,128,255,128,128,128,128,
  128,255,128,128,128,128,128,255,128,11,11,22,12,0,255,113,
  0,1,0,3,224,249,32,33,32,65,32,81,32,137,32,250,
  32,2,32,4,192,11,11,22,12,0,255,127,192,17,0,17,
  0,17,0,17,0,255,224,17,0,17,0,33,0,33,0,65,
  0,11,11,22,12,0,255,33,0,34,0,244,64,87,224,80,
  32,87,192,148,64,84,64,36,64,87,192,148,64,11,11,22,
  12,0,255,17,0,10,0,127,192,4,0,4,0,255,224,4,
  0,10,0,17,0,32,128,192,96,10,11,22,12,0,255,95,
  192,0,64,132,64,132,64,191,64,132,64,140,64,148,64,164,
  64,140,64,129,192,11,11,22,12,0,255,36,0,39,192,36,
  0,36,0,255,224,0,0,20,64,36,128,71,0,12,0,112,
  0,11,11,22,12,0,255,36,128,4,128,15,192,228,128,36,
  128,63,224,36,128,36,128,40,128,80,0,143,224,11,11,22,
  12,0,255,8,0,8,0,255,128,136,128,136,128,255,128,136,
  128,136,128,255,160,136,32,7,224,11,11,22,12,0,255,39,
  128,36,128,244,128,36,128,116,128,108,128,164,128,36,128,36,
  160,40,160,48,96,10,11,22,12,0,255,255,192,128,64,128,
  64,158,64,146,64,146,64,158,64,128,64,128,64,255,192,128,
  64,11,11,22,12,0,255,127,192,68,0,95,192,80,64,95,
  192,80,64,95,192,66,0,74,128,82,64,166,32,11,11,22,
  12,0,255,4,0,7,224,4,0,127,192,64,64,64,64,64,
  64,127,192,0,0,82,64,137,32,11,11,22,12,0,255,71,
  128,36,128,4,128,4,128,232,96,32,0,47,192,36,64,34,
  128,49,0,38,192,11,11,22,12,0,255,127,192,74,64,127,
  192,4,0,255,224,4,0,63,128,32,128,36,128,36,128,255,
  224,11,11,22,12,0,255,34,0,79,224,72,32,79,224,200,
  0,79,224,74,160,90,160,111,224,74,160,72,96,11,11,22,
  12,0,255,243,192,36,64,42,128,241,0,34,128,101,224,114,
  32,165,64,32,128,35,0,44,0,11,11,22,12,0,255,4,
  0,255,224,128,32,0,0,255,224,4,0,36,0,39,192,36,
  0,84,0,143,224,11,11,22,12,0,255,115,224,16,128,81,
  0,35,224,250,32,42,160,34,160,34,160,32,128,33,64,98,
  32,11,11,22,12,0,255,34,0,247,128,34,128,54,128,226,
  160,37,160,36,96,104,32,0,0,82,64,137,32,11,11,22,
  12,0,255,115,192,66,0,66,0,123,224,74,64,74,64,122,
  64,74,64,66,64,68,64,136,64,11,11,22,12,0,255,8,
  0,255,224,8,0,31,192,48,64,95,192,144,64,31,192,16,
  64,16,64,16,192,11,11,22,12,0,255,2,0,127,224,66,
  0,66,0,95,192,66,0,71,0,74,128,82,64,98,32,130,
  0,11,11,22,12,0,255,243,192,150,64,145,128,166,96,161,
  0,151,192,145,0,149,0,231,224,129,0,129,0,11,11,22,
  12,0,255,15,128,136,128,79,128,8,128,143,128,64,0,31,
  192,53,64,85,64,149,64,63,224,11,11,22,12,0,255,39,
  224,32,128,248,128,32,128,32,128,56,128,224,128,32,128,32,
  128,32,128,97,128,11,11,22,12,0,255,31,224,145,0,87,
  192,20,64,23,192,148,64,87,192,17,0,85,64,153,32,35,
  0,11,11,22,12,0,255,32,128,39,224,242,64,33,128,34,
  64,52,32,226,64,34,64,34,64,34,64,100,64,11,11,22,
  12,0,255,65,0,65,0,79,224,233,32,73,32,73,32,111,
  224,201,32,73,32,73,32,207,224,11,11,22,12,0,255,33,
  0,241,0,79,224,169,32,249,32,47,224,57,32,233,32,41,
  32,47,224,40,32,11,11,22,12,0,255,143,224,73,32,9,
  32,203,160,73,32,79,224,72,32,75,160,74,160,107,160,80,
  224,11,11,22,12,0,255,127,192,4,0,68,64,36,64,36,
  128,4,0,255,224,4,0,4,0,4,0,4,0,11,11,22,
  12,0,255,130,0,66,0,31,224,194,0,95,192,82,64,95,
  192,71,0,74,128,82,64,191,224,11,11,22,12,0,255,4,
  0,127,224,72,128,127,224,72,128,79,128,64,0,95,192,72,
  64,71,128,152,96,11,11,22,12,0,255,1,0,239,224,161,
  0,164,64,175,224,164,64,175,224,169,32,233,32,2,128,12,
  96,11,11,22,12,0,255,20,192,246,160,188,96,167,128,168,
  128,191,224,169,32,239,224,9,32,15,224,9,32,11,11,22,
  12,0,255,127,128,64,128,66,128,98,128,84,128,72,128,72,
  128,84,160,98,160,64,96,128,32,11,11,22,12,0,255,4,
  0,127,224,64,32,127,224,64,0,125,224,84,32,76,160,84,
  96,100,160,141,96,11,11,22,12,0,255,130,0,95,224,4,
  0,8,64,159,224,64,32,10,128,10,128,74,160,146,160,34,
  96,11,11,22,12,0,255,65,0,79,224,232,32,66,128,68,
  64,104,32,199,192,65,0,65,0,65,0,207,224,11,11,22,
  12,0,255,80,32,125,32,145,32,255,32,17,32,125,32,85,
  32,85,32,84,32,92,32,16,224,11,11,22,12,0,255,63,
  128,32,128,63,128,32,128,255,224,72,0,123,192,73,64,121,
  64,72,128,251,96,11,11,22,12,0,255,4,0,4,0,4,
  0,36,128,36,64,68,64,68,32,132,32,4,0,4,0,28,
  0,11,11,22,12,0,255,4,0,4,0,4,0,255,224,4,
  0,10,0,10,0,17,0,17,0,32,128,192,96,9,10,20,
  10,0,0,136,128,73,0,8,0,255,128,0,128,0,128,127,
  128,0,128,0,128,255,128,11,11,22,12,0,255,33,0,18,
  0,255,224,0,0,120,128,74,128,122,128,74,128,122,128,72,
  128,89,128,11,11,22,12,0,255,39,192,0,0,0,0,239,
  224,33,0,34,0,36,64,47,224,32,32,80,0,143,224,11,
  11,22,12,0,255,32,128,39,0,249,0,33,192,119,0,33,
  0,249,224,39,0,113,32,169,32,32,224,11,11,22,12,0,
  255,16,64,16,64,253,224,16,64,56,192,53,64,82,64,148,
  64,16,64,16,64,16,192,11,11,22,12,0,255,0,64,248,
  64,11,224,8,64,136,64,82,64,81,64,33,64,80,64,72,
  64,137,192,10,11,22,12,0,255,132,0,132,64,132,128,245,
  0,134,0,132,0,132,0,148,0,164,64,196,64,131,192,11,
  11,22,12,0,255,17,32,125,0,17,0,255,224,41,0,253,
  64,73,64,124,128,8,160,253,96,10,32,11,11,22,12,0,
  255,23,192,36,64,36,64,103,192,161,0,47,224,33,0,35,
  128,37,64,41,32,33,0,11,11,22,12,0,255,8,0,255,
  224,16,0,39,192,32,128,97,0,175,224,33,0,33,0,33,
  0,35,0,11,11,22,12,0,255,36,0,47,224,180,0,164,
  128,164,160,170,192,42,128,40,128,41,64,50,64,36,32,11,
  11,22,12,0,255,127,224,128,0,63,192,32,64,63,192,16,
  0,31,192,16,64,40,128,71,0,56,224,11,11,22,12,0,
  255,127,224,64,0,64,0,64,0,64,0,64,0,64,0,64,
  0,64,0,64,0,128,0,11,11,22,12,0,255,255,224,4,
  0,127,192,68,64,127,192,68,64,127,192,68,0,36,0,24,
  0,231,224,11,11,22,12,0,255,17,224,253,0,69,0,41,
  224,253,64,17,64,125,64,17,64,85,64,146,64,52,64,11,
  11,22,12,0,255,33,0,95,224,64,0,207,192,64,0,79,
  192,64,0,79,192,72,64,79,192,72,64,11,11,22,12,0,
  255,4,0,127,192,64,64,127,192,64,64,127,192,64,64,127,
  192,4,64,82,32,191,160,11,11,22,12,0,255,127,192,68,
  64,127,192,68,64,127,192,4,0,27,0,224,224,17,0,17,
  0,97,0,11,11,22,12,0,255,255,224,4,0,8,0,127,
  224,73,32,79,32,73,32,79,32,73,32,73,32,127,224,11,
  11,22,12,0,255,253,224,86,64,121,64,56,128,85,64,146,
  32,255,224,4,0,39,192,36,0,255,224,11,11,22,12,0,
  255,251,128,82,0,123,224,18,64,250,64,20,64,63,128,32,
  128,63,128,32,128,63,128,11,11,22,12,0,255,31,224,32,
  0,39,192,100,64,167,192,32,0,47,224,40,32,39,192,33,
  0,35,0,11,11,22,12,0,255,243,224,130,32,130,32,250,
  32,130,32,130,32,138,32,178,32,194,224,2,0,2,0,11,
  11,22,12,0,255,36,128,70,160,149,192,228,128,39,224,68,
  128,245,192,6,160,52,128,196,128,7,224,11,11,22,12,0,
  255,39,192,65,0,135,224,224,32,34,128,69,128,242,128,15,
  224,48,128,193,64,2,32,11,11,22,12,0,255,2,0,2,
  0,34,0,35,192,34,0,34,0,34,0,34,0,34,0,34,
  0,255,224,10,10,20,12,0,0,63,0,45,0,51,0,45,
  0,127,128,18,0,63,0,72,128,165,64,31,0,11,11,22,
  12,0,255,33,0,83,160,65,0,247,224,81,0,83,192,86,
  64,83,192,90,64,83,192,66,64,11,11,22,12,0,255,127,
  192,4,0,4,0,4,0,255,224,10,0,10,0,18,0,34,
  32,66,32,129,224,11,11,22,12,0,255,17,0,33,0,47,
  224,97,0,163,128,35,128,37,64,37,64,41,32,33,0,33,
  0,11,11,22,12,0,255,247,224,148,32,244,32,151,224,148,
  128,244,128,151,224,148,128,244,160,150,96,4,32,11,11,22,
  12,0,255,123,224,148,128,4,0,127,192,4,0,255,224,1,
  0,255,224,33,0,17,0,7,0,11,11,22,12,0,255,33,
  0,71,192,145,0,47,224,96,128,175,224,32,128,36,128,34,
  128,32,128,35,128,11,11,22,12,0,255,39,192,36,64,247,
  192,46,224,42,160,62,224,225,0,47,224,35,128,37,64,105,
  32,11,11,22,12,0,255,20,0,39,224,42,0,98,0,163,
  192,34,0,34,0,35,224,34,0,34,0,34,0};

Configuration.h

...
#define LCD_LANGUAGE cn  // Dont be fooled by zh_CN which won't work
...
#define ULTRA_LCD // Character based
// #define DOGLCD // Full graphics display

Translated language_cn.h

The Chinese edition language_cn.h is listed here, for clarifying.

/**
 * Marlin 3D Printer Firmware
 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
 *
 * Based on Sprinter and grbl.
 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 *
 */

/**
 * Chinese
 *
 * LCD Menu Messages
 * See also http://marlinfw.org/docs/development/lcd_language.html
 *
 */
#ifndef LANGUAGE_CN_H
#define LANGUAGE_CN_H

#define DISPLAY_CHARSET_ISO10646_CN

#define WELCOME_MSG                         "准备就绪"
#define MSG_SD_INSERTED                     "SD 卡已插入"
#define MSG_SD_REMOVED                      "SD 卡已拔出"
#define MSG_MAIN                            "主菜单"
#define MSG_AUTOSTART                       "自动开始"
#define MSG_DISABLE_STEPPERS                "关闭步进电机"
#define MSG_AUTO_HOME                       "回原点"
#define MSG_LEVEL_BED_HOMING                "热床回原点"
#define MSG_LEVEL_BED_WAITING               "热床就绪"
#define MSG_LEVEL_BED_DONE                  "调平完成"
#define MSG_SET_HOME_OFFSETS                "设置回原点偏移"
#define MSG_HOME_OFFSETS_APPLIED            "已应用偏移"
#define MSG_SET_ORIGIN                      "设置原点"
#define MSG_PREHEAT_1                       "预热 PLA"
#define MSG_PREHEAT_1_N                     MSG_PREHEAT_1 " "
#define MSG_PREHEAT_1_ALL                   MSG_PREHEAT_1 " 所有"
#define MSG_PREHEAT_1_BEDONLY               MSG_PREHEAT_1 " 热床"
#define MSG_PREHEAT_1_SETTINGS              MSG_PREHEAT_1 " 设置"
#define MSG_PREHEAT_2                       "预热 ABS"
#define MSG_PREHEAT_2_N                     MSG_PREHEAT_2 " "
#define MSG_PREHEAT_2_ALL                   MSG_PREHEAT_2 " 所有"
#define MSG_PREHEAT_2_BEDONLY               MSG_PREHEAT_2 " 热床"
#define MSG_PREHEAT_2_SETTINGS              MSG_PREHEAT_2 " 设置"
#define MSG_COOLDOWN                        "降温"
#define MSG_SWITCH_PS_ON                    "电源打开"
#define MSG_SWITCH_PS_OFF                   "电源关闭"
#define MSG_EXTRUDE                         "挤出"
#define MSG_RETRACT                         "回抽"
#define MSG_MOVE_AXIS                       "移动轴"
#define MSG_BED_LEVELING                    "热床调平"
#define MSG_LEVEL_BED                       "调平热床"
#define MSG_MOVE_X                          "移动 X"
#define MSG_MOVE_Y                          "移动 Y"
#define MSG_MOVE_Z                          "移动 Z"
#define MSG_MOVE_E                          "挤出机"
#define MSG_MOVE_01MM                       "移动 0.1mm"
#define MSG_MOVE_1MM                        "移动 1mm"
#define MSG_MOVE_10MM                       "移动 10mm"
#define MSG_SPEED                           "速度"
#define MSG_NOZZLE                          "喷嘴"
#define MSG_BED                             "热床"
#define MSG_FAN_SPEED                       "风扇速度"
#define MSG_FLOW                            "挤出速度"
#define MSG_CONTROL                         "控制"
#define MSG_MIN                             LCD_STR_THERMOMETER " 最小"
#define MSG_MAX                             LCD_STR_THERMOMETER " 最大"
#define MSG_FACTOR                          LCD_STR_THERMOMETER " 当前"
#define MSG_AUTOTEMP                        "自动温控"
#define MSG_ON                              "开 "  // intentional space to shift wide symbol to the left
#define MSG_OFF                             "关 "  // intentional space to shift wide symbol to the left
#define MSG_PID_P                           "PID-P"
#define MSG_PID_I                           "PID-I"
#define MSG_PID_D                           "PID-D"
#define MSG_PID_C                           "PID-C"
#define MSG_ACC                             "加速度"
#define MSG_JERK                            "抖动"
#define MSG_VX_JERK                         "X 抖动加速度"
#define MSG_VY_JERK                         "Y 抖动加速度"
#define MSG_VZ_JERK                         "Z 抖动加速度"
#define MSG_VE_JERK                         "E 抖动加速度"
#define MSG_VMAX                            "最大速度 "
#define MSG_VMIN                            "最小速度"
#define MSG_VTRAV_MIN                       "最小空驶速度"
#define MSG_AMAX                            "最大加速度 "
#define MSG_A_RETRACT                       "回抽加速度"
#define MSG_A_TRAVEL                         "空驶加速度"
#define MSG_STEPS_PER_MM                    "微步 /mm"
#define MSG_XSTEPS                          "X 微步 /mm"
#define MSG_YSTEPS                          "Y 微步 /mm"
#define MSG_ZSTEPS                          "Z 微步 /mm"
#define MSG_ESTEPS                          "E 微步 /mm"
#define MSG_E1STEPS                         "挤出机 1 微步 /mm"
#define MSG_E2STEPS                         "挤出机 2 微步 /mm"
#define MSG_E3STEPS                         "挤出机 3 微步 /mm"
#define MSG_E4STEPS                         "挤出机 4 微步 /mm"
#define MSG_E5STEPS                         "挤出机 5 微步 /mm"
#define MSG_TEMPERATURE                     "温度"
#define MSG_MOTION                          "运动"
#define MSG_FILAMENT                        "耗材"
#define MSG_VOLUMETRIC_ENABLED              "按 mm3 挤出"
#define MSG_FILAMENT_DIAM                   "耗材直径"
#define MSG_CONTRAST                        "对比度"
#define MSG_STORE_EEPROM                    "存储设定"
#define MSG_LOAD_EEPROM                     "加载设定"
#define MSG_RESTORE_FAILSAFE                "恢复出厂设置"
#define MSG_REFRESH                         "刷新"
#define MSG_WATCH                           "信息界面"
#define MSG_PREPARE                         "准备"
#define MSG_TUNE                            "调整"
#define MSG_PAUSE_PRINT                     "暂停打印"
#define MSG_RESUME_PRINT                    "继续打印"
#define MSG_STOP_PRINT                      "停止打印"
#define MSG_CARD_MENU                       "打印"
#define MSG_NO_CARD                         "无卡"
#define MSG_DWELL                           "休眠..."
#define MSG_USERWAIT                        "等待操作..."
#define MSG_RESUMING                        "恢复打印"
#define MSG_PRINT_ABORTED                   "中止打印"
#define MSG_NO_MOVE                         "无动作."
#define MSG_KILLED                          "已中止. "
#define MSG_STOPPED                         "已停止. "
#define MSG_CONTROL_RETRACT                 "回抽 mm"
#define MSG_CONTROL_RETRACT_SWAP            "交替回抽.mm"
#define MSG_CONTROL_RETRACTF                "回抽速度"
#define MSG_CONTROL_RETRACT_ZLIFT           "悬停高度 mm"
#define MSG_CONTROL_RETRACT_RECOVER         "反回抽长度 mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "交替反回抽长度 mm"
#define MSG_CONTROL_RETRACT_RECOVERF        "回抽恢复速度"
#define MSG_AUTORETRACT                     "自动回抽."
#define MSG_FILAMENTCHANGE                  "更换耗材"
#define MSG_INIT_SDCARD                     "初始化存储卡"
#define MSG_CNG_SDCARD                      "替换存储卡"
#define MSG_ZPROBE_OUT                      "Z 探针越界"
#define MSG_HOME                            "回原点"  // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST                           "首先"
#define MSG_ZPROBE_ZOFFSET                  "Z 探针偏移"
#define MSG_BABYSTEP_X                            "微调 X"
#define MSG_BABYSTEP_Y                            "微调 Y"
#define MSG_BABYSTEP_Z                            "微调 Z"
#define MSG_ENDSTOP_ABORT                   "限位中止"
#define MSG_HEATING_FAILED_LCD              "加热失败"
#define MSG_ERR_REDUNDANT_TEMP              "出错 : REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY                 "温控出错"
#define MSG_ERR_MAXTEMP                     "出错 : 高温"
#define MSG_ERR_MINTEMP                     "出错 : 低温"
#define MSG_ERR_MAXTEMP_BED                 "出错 : 热床"
#define MSG_DELTA_CALIBRATE                 "Delta 校准"
#define MSG_DELTA_CALIBRATE_X               "校准 X"
#define MSG_DELTA_CALIBRATE_Y               "校准 Y"
#define MSG_DELTA_CALIBRATE_Z               "校准 Z"
#define MSG_DELTA_CALIBRATE_CENTER          "校准 中心"

#define MSG_VELOCITY                        "速度"
#define MSG_ACCELERATION                    "加速度"
#define MSG_INIT_EEPROM                     "恢复 EEPROM"
#define MSG_PREHEAT_1_END                   MSG_PREHEAT_1 " 喷嘴"
#define MSG_PREHEAT_2_END                   MSG_PREHEAT_2 " 喷嘴"

#endif // LANGUAGE_CN_H

Apply the modification

Please google how to modify and compile Marlin firmware. If google doesn't exist, try Bing.

About the application

I done this translation by an app I wrote. It can be downloaded from github.

Good luck!

你可能感兴趣的:(c)