diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index a443d4b302..b2e29a1c94 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -2754,10 +2754,10 @@
*
* Select the language to display on the LCD. These languages are available:
*
- * en, an, bg, ca, cz, da, de, el, el_CY, es, eu, fi, fr, gl, hr, hu, it,
+ * en, an, bg, ca, cz, da, de, el, el_CY, es, eu, fi, fr, gl, hg, hr, hu, id, it,
* jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, sv, tr, uk, vi, zh_CN, zh_TW
*
- * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek (Greece)', 'el_CY':'Greek (Cyprus)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'hu':'Hungarian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)' }
+ * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek (Greece)', 'el_CY':'Greek (Cyprus)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hg':'Hinglish (Hindi-Latin)', 'hr':'Croatian', 'hu':'Hungarian', 'id':'Indonesian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)' }
*/
#define LCD_LANGUAGE en
diff --git a/Marlin/src/core/language.h b/Marlin/src/core/language.h
index 96aa58c807..00181b602f 100644
--- a/Marlin/src/core/language.h
+++ b/Marlin/src/core/language.h
@@ -57,8 +57,10 @@
// fr French
// fr_na French without accents (DWIN T5UID1 touchscreen)
// gl Galician
+// hg Hinglish (Hindi in Latin script)
// hr Croatian
// hu Hungarian
+// id Indonesian (Bahasa)
// it Italian
// jp_kana Japanese
// ko_KR Korean (South Korea)
diff --git a/Marlin/src/lcd/dogm/fontdata/langdata_hg.h b/Marlin/src/lcd/dogm/fontdata/langdata_hg.h
new file mode 100644
index 0000000000..4af7a48295
--- /dev/null
+++ b/Marlin/src/lcd/dogm/fontdata/langdata_hg.h
@@ -0,0 +1,11 @@
+/**
+ * Generated automatically by buildroot/share/fonts/uxggenpages.sh
+ * Contents will be REPLACED by future processing!
+ * Use genallfont.sh to generate font data for updated languages.
+ */
+#pragma once
+
+#include "langdata.h"
+
+// Hinglish uses the base ISO10646-1 pages, so no extra glyphs are needed.
+static const uxg_fontinfo_t g_fontinfo_hg[] PROGMEM = {};
diff --git a/Marlin/src/lcd/dogm/fontdata/langdata_id.h b/Marlin/src/lcd/dogm/fontdata/langdata_id.h
new file mode 100644
index 0000000000..7b44fd3149
--- /dev/null
+++ b/Marlin/src/lcd/dogm/fontdata/langdata_id.h
@@ -0,0 +1,11 @@
+/**
+ * Generated automatically by buildroot/share/fonts/uxggenpages.sh
+ * Contents will be REPLACED by future processing!
+ * Use genallfont.sh to generate font data for updated languages.
+ */
+#pragma once
+
+#include "langdata.h"
+
+// Indonesian reuses the base ISO10646-1 font set; no extra glyphs needed.
+static const uxg_fontinfo_t g_fontinfo_id[] PROGMEM = {};
diff --git a/Marlin/src/lcd/language/language_hg.h b/Marlin/src/lcd/language/language_hg.h
new file mode 100644
index 0000000000..5552413811
--- /dev/null
+++ b/Marlin/src/lcd/language/language_hg.h
@@ -0,0 +1,107 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2026 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 .
+ *
+ */
+#pragma once
+
+/**
+ * Hinglish (Hindi-Latin)
+ *
+ * LCD Menu Messages
+ * See also https://marlinfw.org/docs/development/lcd_language.html
+ *
+ * Substitutions are applied for the following characters when used in menu items titles:
+ *
+ * $ displays an inserted string
+ * { displays '0'....'10' for indexes 0 - 10
+ * ~ displays '1'....'11' for indexes 0 - 10
+ * * displays 'E1'...'E11' for indexes 0 - 10 (By default. Uses LCD_FIRST_TOOL)
+ * @ displays an axis name such as XYZUVW, or E for an extruder
+ */
+
+/**
+ * Imported from out-csv/language_hg.csv on 2026-02-27 at 14:31:47
+ */
+
+#define DISPLAY_CHARSET_ISO10646_1
+#define NOT_EXTENDED_ISO10646_1_5X7
+
+namespace LanguageNarrow_hg {
+ using namespace Language_en; // Inherit undefined strings from English
+
+ constexpr uint8_t CHARSIZE = 2;
+ LSTR LANGUAGE = _UxGT("Hinglish");
+
+ LSTR WELCOME_MSG = MACHINE_NAME_SUBST _UxGT(" taiyaar.");
+ LSTR MSG_MEDIA_INSERTED = _UxGT("Card lagi");
+ LSTR MSG_MEDIA_REMOVED = _UxGT("Card nikal gayi");
+ LSTR MSG_MAIN_MENU = _UxGT("Mukhya Menu");
+ LSTR MSG_DISABLE_STEPPERS = _UxGT("Motor band");
+ LSTR MSG_AUTO_HOME = _UxGT("Auto Ghar");
+ LSTR MSG_AUTO_HOME_X = _UxGT("Ghar X");
+ LSTR MSG_AUTO_HOME_Y = _UxGT("Ghar Y");
+ LSTR MSG_AUTO_HOME_Z = _UxGT("Ghar Z");
+ LSTR MSG_LEVEL_BED_WAITING = _UxGT("Start ke liye click");
+ LSTR MSG_LEVEL_BED_NEXT_POINT = _UxGT("Agla point");
+ LSTR MSG_LEVEL_BED_DONE = _UxGT("Leveling ho gaya!");
+ LSTR MSG_SET_HOME_OFFSETS = _UxGT("Home offset set karo");
+ LSTR MSG_HOME_OFFSETS_APPLIED = _UxGT("Offsets lage");
+ LSTR MSG_PREHEAT_1_ALL = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Sab");
+ LSTR MSG_PREHEAT_1_BEDONLY = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Bed");
+ LSTR MSG_COOLDOWN = _UxGT("Thanda karo");
+ LSTR MSG_SWITCH_PS_ON = _UxGT("Power chalu");
+ LSTR MSG_SWITCH_PS_OFF = _UxGT("Power band");
+ LSTR MSG_EXTRUDE = _UxGT("Nikalna");
+ LSTR MSG_RETRACT = _UxGT("Wapas lena");
+ LSTR MSG_MOVE_AXIS = _UxGT("Axis hilaao");
+ LSTR MSG_LEVEL_BED = _UxGT("Bed Satao");
+ LSTR MSG_MOVE_X = _UxGT("X hilaao");
+ LSTR MSG_MOVE_Y = _UxGT("Y hilaao");
+ LSTR MSG_MOVE_Z = _UxGT("Z hilaao");
+ LSTR MSG_MOVE_E = _UxGT("Extruder");
+ LSTR MSG_FAN_SPEED = _UxGT("Pankha gati");
+ LSTR MSG_CONTROL = _UxGT("Niyantran");
+ LSTR MSG_TEMPERATURE = _UxGT("Tapmaan");
+ LSTR MSG_STOP_PRINT = _UxGT("Print roko");
+ LSTR MSG_YES = _UxGT("Haan");
+ LSTR MSG_NO = _UxGT("Nahi");
+ LSTR MSG_BACK = _UxGT("Peeche");
+ LSTR MSG_CONFIGURATION = _UxGT("Settings");
+ LSTR MSG_BUTTON_NEXT = _UxGT("Aage");
+ LSTR MSG_BUTTON_INIT = _UxGT("Shuru");
+ LSTR MSG_HOME_ALL = _UxGT("Sab Ghar");
+}
+
+namespace LanguageWide_hg {
+ using namespace LanguageNarrow_hg;
+ #if LCD_WIDTH > 20 || HAS_DWIN_E3V2
+ #endif
+}
+
+namespace LanguageTall_hg {
+ using namespace LanguageWide_hg;
+ #if LCD_HEIGHT >= 4
+ // Filament Change screens show up to 3 lines on a 4-line display
+ #endif
+}
+
+namespace Language_hg {
+ using namespace LanguageTall_hg;
+}
diff --git a/Marlin/src/lcd/language/language_id.h b/Marlin/src/lcd/language/language_id.h
new file mode 100644
index 0000000000..8f5c6164c8
--- /dev/null
+++ b/Marlin/src/lcd/language/language_id.h
@@ -0,0 +1,114 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2026 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 .
+ *
+ */
+#pragma once
+
+/**
+ * Indonesian
+ *
+ * LCD Menu Messages
+ * See also https://marlinfw.org/docs/development/lcd_language.html
+ *
+ * Substitutions are applied for the following characters when used in menu items titles:
+ *
+ * $ displays an inserted string
+ * { displays '0'....'10' for indexes 0 - 10
+ * ~ displays '1'....'11' for indexes 0 - 10
+ * * displays 'E1'...'E11' for indexes 0 - 10 (By default. Uses LCD_FIRST_TOOL)
+ * @ displays an axis name such as XYZUVW, or E for an extruder
+ */
+
+/**
+ * Imported from out-csv/language_id.csv on 2026-02-27 at 14:31:51
+ */
+
+#define DISPLAY_CHARSET_ISO10646_1
+#define NOT_EXTENDED_ISO10646_1_5X7
+
+namespace LanguageNarrow_id {
+ using namespace Language_en; // Inherit undefined strings from English
+
+ constexpr uint8_t CHARSIZE = 2;
+ LSTR LANGUAGE = _UxGT("Bahasa Indonesia");
+
+ LSTR WELCOME_MSG = MACHINE_NAME_SUBST _UxGT(" siap.");
+ LSTR MSG_MEDIA_INSERTED = _UxGT("Kartu terpasang");
+ LSTR MSG_MEDIA_REMOVED = _UxGT("Kartu dilepas");
+ LSTR MSG_LCD_ENDSTOPS = _UxGT("Endstop");
+ LSTR MSG_MAIN_MENU = _UxGT("Menu Utama");
+ LSTR MSG_DISABLE_STEPPERS = _UxGT("Matikan motor");
+ LSTR MSG_LEVEL_BED_HOMING = _UxGT("Homing XYZ");
+ LSTR MSG_LEVEL_BED_WAITING = _UxGT("Klik untuk mulai");
+ LSTR MSG_LEVEL_BED_NEXT_POINT = _UxGT("Titik berikutnya");
+ LSTR MSG_LEVEL_BED_DONE = _UxGT("Perataan selesai!");
+ LSTR MSG_SET_HOME_OFFSETS = _UxGT("Setel offset home");
+ LSTR MSG_HOME_OFFSETS_APPLIED = _UxGT("Offset diterapkan");
+ LSTR MSG_PREHEAT_1 = _UxGT("Panaskan ") PREHEAT_1_LABEL;
+ LSTR MSG_PREHEAT_1_ALL = _UxGT("Panaskan ") PREHEAT_1_LABEL _UxGT(" semua");
+ LSTR MSG_PREHEAT_1_BEDONLY = _UxGT("Panaskan ") PREHEAT_1_LABEL _UxGT(" bed");
+ LSTR MSG_COOLDOWN = _UxGT("Dinginkan");
+ LSTR MSG_SWITCH_PS_ON = _UxGT("Hidupkan daya");
+ LSTR MSG_SWITCH_PS_OFF = _UxGT("Matikan daya");
+ LSTR MSG_EXTRUDE = _UxGT("Ekstrusi");
+ LSTR MSG_RETRACT = _UxGT("Tarik balik");
+ LSTR MSG_MOVE_AXIS = _UxGT("Gerak sumbu");
+ LSTR MSG_LEVEL_BED = _UxGT("Ratakan bed");
+ LSTR MSG_MOVE_X = _UxGT("Gerak X");
+ LSTR MSG_MOVE_Y = _UxGT("Gerak Y");
+ LSTR MSG_MOVE_Z = _UxGT("Gerak Z");
+ LSTR MSG_MOVE_E = _UxGT("Ekstruder");
+ LSTR MSG_FAN_SPEED = _UxGT("Kecep. kipas");
+ LSTR MSG_FLOW = _UxGT("Aliran");
+ LSTR MSG_CONTROL = _UxGT("Kontrol");
+ LSTR MSG_TEMPERATURE = _UxGT("Suhu");
+ LSTR MSG_STOP_PRINT = _UxGT("Hentikan cetak");
+ LSTR MSG_DEBUG_MENU = _UxGT("Menu debug");
+ LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Tes bar kemajuan");
+ LSTR MSG_YES = _UxGT("Ya");
+ LSTR MSG_NO = _UxGT("Tidak");
+ LSTR MSG_BACK = _UxGT("Kembali");
+ LSTR MSG_MEDIA_READ_ERROR = _UxGT("Kesalahan baca media");
+ LSTR MSG_LCD_SOFT_ENDSTOPS = _UxGT("Endstop lunak");
+ LSTR MSG_ADVANCED_SETTINGS = _UxGT("Pengaturan lanjut");
+ LSTR MSG_CONFIGURATION = _UxGT("Konfigurasi");
+ LSTR MSG_BUTTON_NEXT = _UxGT("Lanjut");
+ LSTR MSG_BUTTON_INIT = _UxGT("Mulai");
+ LSTR MSG_HOME_ALL = _UxGT("Home semua");
+ LSTR MSG_PREHEAT_2 = _UxGT("Panaskan ") PREHEAT_2_LABEL;
+ LSTR MSG_PREHEAT = _UxGT("Panaskan");
+}
+
+namespace LanguageWide_id {
+ using namespace LanguageNarrow_id;
+ #if LCD_WIDTH > 20 || HAS_DWIN_E3V2
+ #endif
+}
+
+namespace LanguageTall_id {
+ using namespace LanguageWide_id;
+ #if LCD_HEIGHT >= 4
+ // Filament Change screens show up to 3 lines on a 4-line display
+ #endif
+}
+
+namespace Language_id {
+ using namespace LanguageTall_id;
+}
diff --git a/buildroot/share/fonts/genallfont.sh b/buildroot/share/fonts/genallfont.sh
index 68d69c29d0..6215fa78de 100755
--- a/buildroot/share/fonts/genallfont.sh
+++ b/buildroot/share/fonts/genallfont.sh
@@ -62,7 +62,7 @@ fi
#
# By default loop through all languages
#
-LANGS_DEFAULT="an bg ca cz da de el el_CY en es eu fi fr fr_na gl hr hu it jp_kana ko_KR nl pl pt pt_br ro ru sk sv tr uk vi zh_CN zh_TW test"
+LANGS_DEFAULT="an bg ca cz da de el el_CY en es eu fi fr fr_na gl hg hr hu id it jp_kana ko_KR nl pl pt pt_br ro ru sk sv tr uk vi zh_CN zh_TW test"
DN_WORK=$(mktemp -d)
open "$DN_WORK"
diff --git a/buildroot/share/scripts/languageUtil.py b/buildroot/share/scripts/languageUtil.py
index d73ab4bf7b..b77cf928a9 100755
--- a/buildroot/share/scripts/languageUtil.py
+++ b/buildroot/share/scripts/languageUtil.py
@@ -21,8 +21,10 @@ LANGNAME = {
'fr': { 'size':2, 'iso': "1", 'name':"French" },
'fr_na': { 'size':1, 'iso': "1", 'name':"French (no accent)", 'noext':1 },
'gl': { 'size':1, 'iso': "1", 'name':"Galician" },
+ 'hg': { 'size':2, 'iso': "1", 'name':"Hinglish (Hindi-Latin)", 'noext':1 },
'hr': { 'size':2, 'iso': "1", 'name':"Croatian (Hrvatski)" },
'hu': { 'size':2, 'name':"Hungarian / Magyar" },
+ 'id': { 'size':2, 'iso': "1", 'name':"Indonesian", 'noext':1 },
'it': { 'size':1, 'iso': "1", 'name':"Italian" },
'jp_kana': { 'size':3, 'iso': "KANA", 'name':"Japanese (Kana)" },
'ko_KR': { 'size':1, 'name':"Korean" },
diff --git a/buildroot/tests/mega2560 b/buildroot/tests/mega2560
index 8eb95a9a71..468ade98d6 100755
--- a/buildroot/tests/mega2560
+++ b/buildroot/tests/mega2560
@@ -251,11 +251,11 @@ exec_test $1 $2 "Azteeg X3 | Mixing Extruder (x5) | Gradient Mix | Input Shaping
#
#restore_configs
#opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
-#for lang in an bg ca cz da de el el_CY en es eu fi fr gl hr hu it jp_kana nl pl pt pt_br ro ru sk sv tr uk vi zh_CN zh_TW test; do opt_set LCD_LANGUAGE $lang; echo "compile with language $lang ..."; exec_test $1 $2 "Stuff" "$3"; done
+#for lang in an bg ca cz da de el el_CY en es eu fi fr gl hg hr hu id it jp_kana nl pl pt pt_br ro ru sk sv tr uk vi zh_CN zh_TW test; do opt_set LCD_LANGUAGE $lang; echo "compile with language $lang ..."; exec_test $1 $2 "Stuff" "$3"; done
#
#restore_configs
#opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT
-#for lang in an bg ca cz da de el el_CY en es eu fi fr gl hr hu it jp_kana nl pl pt pt_br ro ru sk sv tr uk vi zh_CN zh_TW test; do opt_set LCD_LANGUAGE $lang; echo "compile with language $lang ..."; exec_test $1 $2 "Stuff" "$3"; done
+#for lang in an bg ca cz da de el el_CY en es eu fi fr gl hg hr hu id it jp_kana nl pl pt pt_br ro ru sk sv tr uk vi zh_CN zh_TW test; do opt_set LCD_LANGUAGE $lang; echo "compile with language $lang ..."; exec_test $1 $2 "Stuff" "$3"; done
######## Example Configurations ##############
#