]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
switch to en_US when use text mode.
authorlongpanda <admin@ventoy.net>
Tue, 10 Jan 2023 08:17:08 +0000 (16:17 +0800)
committerlongpanda <admin@ventoy.net>
Tue, 10 Jan 2023 08:17:08 +0000 (16:17 +0800)
GRUB2/MOD_SRC/grub-2.04/grub-core/normal/menu.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_cmd.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c
INSTALL/grub/debug.cfg

index ac9e835ba55828d4b5f098c2a34b917b87d2ea63..e839634014e47b348f83f74359078758e03c88cb 100644 (file)
@@ -951,12 +951,12 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
             menu_fini ();
             if (g_ventoy_terminal_output == 0)
             {
-                grub_script_execute_sourcecode("terminal_output console");
+                grub_script_execute_sourcecode("vt_push_menu_lang en_US\nterminal_output console");
                 g_ventoy_terminal_output = 1;
             }
             else
             {
-                grub_script_execute_sourcecode("terminal_output gfxterm");
+                grub_script_execute_sourcecode("terminal_output gfxterm\nvt_pop_menu_lang");
                 g_ventoy_terminal_output = 0;
             }
             goto refresh;
index 7b57279476d5b395a3dea024c1d4f1d63b0d9472..234a509bb27b5d9eac57b1194522b744ae751fdb 100644 (file)
@@ -6951,6 +6951,8 @@ static cmd_para ventoy_cmds[] =
     { "vt_cur_menu_lang", ventoy_cmd_cur_menu_lang, 0, NULL, "", "", NULL },
     { "vt_vtoychksum_exist", ventoy_cmd_vtoychksum_exist, 0, NULL, "", "", NULL },
     { "vt_cmp_checksum", ventoy_cmd_cmp_checksum, 0, NULL, "", "", NULL },
+    { "vt_push_menu_lang", ventoy_cmd_push_menulang, 0, NULL, "", "", NULL },
+    { "vt_pop_menu_lang", ventoy_cmd_pop_menulang, 0, NULL, "", "", NULL },
 
 };
 
index df424323ec323cd319698d963c61ec03400f6a58..1fc3230393bb49e2472eac18faaccc67936adf2d 100644 (file)
@@ -1313,6 +1313,8 @@ grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char *
 extern int ventoy_menu_push_key(int code);
 int ventoy_ctrl_var_init(void);
 int ventoy_global_var_init(void);
+grub_err_t ventoy_cmd_push_menulang(grub_extcmd_context_t ctxt, int argc, char **args);
+grub_err_t ventoy_cmd_pop_menulang(grub_extcmd_context_t ctxt, int argc, char **args);
 
 #endif /* __VENTOY_DEF_H__ */
 
index b5acba2ffa246ae395a930a60185e620acfe57fb..8a95b33b260ce24e76c7be575d4640ea4d25b4c5 100644 (file)
@@ -66,6 +66,7 @@ static theme_list *g_theme_head = NULL;
 static int g_theme_random = vtoy_theme_random_boot_second;
 static char g_theme_single_file[256];
 static char g_cur_menu_language[32] = {0};
+static char g_push_menu_language[32] = {0};
 
 static int ventoy_plugin_is_parent(const char *pat, int patlen, const char *isopath)
 {
@@ -3624,3 +3625,33 @@ grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char *
     VENTOY_CMD_RETURN(0);
 }
 
+grub_err_t ventoy_cmd_push_menulang(grub_extcmd_context_t ctxt, int argc, char **args)
+{
+    (void)argc;
+    (void)ctxt;
+
+    if (g_push_menu_language[0] == 0)
+    {
+        grub_memcpy(g_push_menu_language, g_cur_menu_language, sizeof(g_push_menu_language));
+        ventoy_plugin_load_menu_lang(0, args[0]);
+    }
+
+    VENTOY_CMD_RETURN(0);
+}
+
+grub_err_t ventoy_cmd_pop_menulang(grub_extcmd_context_t ctxt, int argc, char **args)
+{
+    (void)argc;
+    (void)ctxt;
+    (void)args;
+
+    if (g_push_menu_language[0])
+    {
+        ventoy_plugin_load_menu_lang(0, g_push_menu_language);
+        g_push_menu_language[0] = 0;
+    }
+
+    VENTOY_CMD_RETURN(0);
+}
+
+
index 94394968a39e10a9fd8f6b3b7550760e9fbaf297..a7d5cc2a78ff236b97860b2494125986daae4e6f 100644 (file)
@@ -83,10 +83,12 @@ submenu "$VTLANG_RESOLUTION_CFG" --class=debug_resolution --class=F5tool {
 
 submenu "$VTLANG_SCREEN_MODE" --class=debug_screen_mode --class=F5tool {
     menuentry "$VTLANG_SCREEN_TEXT_MODE" --class=debug_text_mode --class=debug_screen_mode --class=F5tool {
+        vt_push_menu_lang en_US
         terminal_output console
     }
     menuentry "$VTLANG_SCREEN_GUI_MODE" --class=debug_gui_mode --class=debug_screen_mode --class=F5tool {
         terminal_output gfxterm
+        vt_pop_menu_lang
     }
     menuentry "$VTLANG_RETURN_PREVIOUS" --class=vtoyret VTOY_RET {
         echo "Return ..."