mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-09-20 02:41:15 +00:00
Compare commits
30 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
22ad828df2 | ||
|
83f22173a5 | ||
|
2de7d9ffe0 | ||
|
5c174c4521 | ||
|
c76ece4b74 | ||
|
27eda4d1e7 | ||
|
acf5a84467 | ||
|
c93e406aa5 | ||
|
1b164e74e4 | ||
|
308cb86f83 | ||
|
2ec593d355 | ||
|
594e735b91 | ||
|
6203366040 | ||
|
64f4400305 | ||
|
d00e08e2e1 | ||
|
c6008be394 | ||
|
a5c6859f5f | ||
|
497d4cc991 | ||
|
7e7687afe3 | ||
|
dd3276badf | ||
|
4a06f4a694 | ||
|
c73bf256be | ||
|
21851f7e96 | ||
|
f222f8cac9 | ||
|
40c4825aac | ||
|
dd906e0b16 | ||
|
324f2b927c | ||
|
5797ca3396 | ||
|
b36b322c03 | ||
|
fd7e34b632 |
2
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
2
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
@@ -21,7 +21,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: Ventoy Version
|
label: Ventoy Version
|
||||||
description: What version of ventoy are you running?
|
description: What version of ventoy are you running?
|
||||||
placeholder: 1.0.83
|
placeholder: 1.0.84
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
|
@@ -1491,6 +1491,34 @@ STATIC EFI_STATUS EFIAPI ventoy_wrapper_file_procotol(EFI_FILE_PROTOCOL *File, B
|
|||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STATIC BOOLEAN EFIAPI ventoy_replace_name_match(CHAR8 *pReplace, CHAR8 *pName)
|
||||||
|
{
|
||||||
|
UINTN Len1, Len2;
|
||||||
|
|
||||||
|
Len1 = AsciiStrLen(pReplace);
|
||||||
|
Len2 = AsciiStrLen(pName);
|
||||||
|
|
||||||
|
if (Len1 == 0 || Len2 == 0)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 == AsciiStriCmp(pReplace, pName))
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Len1 > 2 && Len2 > 2)
|
||||||
|
{
|
||||||
|
if ((pReplace[0] != '\\') && (pName[0] == '\\') && (0 == AsciiStriCmp(pReplace, pName + 1)))
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
STATIC EFI_STATUS EFIAPI ventoy_wrapper_file_open
|
STATIC EFI_STATUS EFIAPI ventoy_wrapper_file_open
|
||||||
(
|
(
|
||||||
EFI_FILE_HANDLE This,
|
EFI_FILE_HANDLE This,
|
||||||
@@ -1534,7 +1562,7 @@ STATIC EFI_STATUS EFIAPI ventoy_wrapper_file_open
|
|||||||
AsciiSPrint(TmpName, sizeof(TmpName), "%s", Name);
|
AsciiSPrint(TmpName, sizeof(TmpName), "%s", Name);
|
||||||
for (j = 0; j < 4; j++)
|
for (j = 0; j < 4; j++)
|
||||||
{
|
{
|
||||||
if (0 == AsciiStriCmp(g_file_replace_list[i].old_file_name[j], TmpName))
|
if (ventoy_replace_name_match(g_file_replace_list[i].old_file_name[j], TmpName))
|
||||||
{
|
{
|
||||||
g_original_fclose(*New);
|
g_original_fclose(*New);
|
||||||
*New = &g_efi_file_replace.WrapperHandle;
|
*New = &g_efi_file_replace.WrapperHandle;
|
||||||
|
174
GRUB2/MOD_SRC/grub-2.04/grub-core/commands/echo.c
Normal file
174
GRUB2/MOD_SRC/grub-2.04/grub-core/commands/echo.c
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
/* echo.c - Command to display a line of text */
|
||||||
|
/*
|
||||||
|
* GRUB -- GRand Unified Bootloader
|
||||||
|
* Copyright (C) 2006,2007,2010 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* GRUB 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.
|
||||||
|
*
|
||||||
|
* GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <grub/dl.h>
|
||||||
|
#include <grub/misc.h>
|
||||||
|
#include <grub/extcmd.h>
|
||||||
|
#include <grub/i18n.h>
|
||||||
|
#include <grub/term.h>
|
||||||
|
|
||||||
|
GRUB_MOD_LICENSE ("GPLv3+");
|
||||||
|
|
||||||
|
extern const char *ventoy_get_vmenu_title(const char *vMenu);
|
||||||
|
|
||||||
|
static const struct grub_arg_option options[] =
|
||||||
|
{
|
||||||
|
{0, 'n', 0, N_("Do not output the trailing newline."), 0, 0},
|
||||||
|
{0, 'e', 0, N_("Enable interpretation of backslash escapes."), 0, 0},
|
||||||
|
{0, 'v', 0, N_("ventoy menu language."), 0, 0},
|
||||||
|
{0, 'V', 0, N_("ventoy menu language with pre-newline."), 0, 0},
|
||||||
|
{0, 0, 0, 0, 0, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
static grub_err_t
|
||||||
|
grub_cmd_echo (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
{
|
||||||
|
struct grub_arg_list *state = ctxt->state;
|
||||||
|
char ch;
|
||||||
|
int vtmenu = 0;
|
||||||
|
int newline = 1;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* Check if `-n' was used. */
|
||||||
|
if (state[0].set)
|
||||||
|
newline = 0;
|
||||||
|
|
||||||
|
if (state[2].set || state[3].set)
|
||||||
|
vtmenu = 1;
|
||||||
|
|
||||||
|
for (i = 0; i < argc; i++)
|
||||||
|
{
|
||||||
|
char *arg = *args;
|
||||||
|
/* Unescaping results in a string no longer than the original. */
|
||||||
|
char *unescaped = grub_malloc (grub_strlen (arg) + 1);
|
||||||
|
char *p = unescaped;
|
||||||
|
args++;
|
||||||
|
|
||||||
|
if (!unescaped)
|
||||||
|
return grub_errno;
|
||||||
|
|
||||||
|
while (*arg)
|
||||||
|
{
|
||||||
|
/* In case `-e' is used, parse backslashes. */
|
||||||
|
if (*arg == '\\' && state[1].set)
|
||||||
|
{
|
||||||
|
arg++;
|
||||||
|
if (*arg == '\0')
|
||||||
|
break;
|
||||||
|
|
||||||
|
switch (*arg)
|
||||||
|
{
|
||||||
|
case '\\':
|
||||||
|
*p++ = '\\';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'a':
|
||||||
|
*p++ = '\a';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'c':
|
||||||
|
newline = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
*p++ = '\f';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'n':
|
||||||
|
*p++ = '\n';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'r':
|
||||||
|
*p++ = '\r';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 't':
|
||||||
|
*p++ = '\t';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'v':
|
||||||
|
*p++ = '\v';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
arg++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* This was not an escaped character, or escaping is not
|
||||||
|
enabled. */
|
||||||
|
*p++ = *arg;
|
||||||
|
arg++;
|
||||||
|
}
|
||||||
|
|
||||||
|
*p = '\0';
|
||||||
|
|
||||||
|
if (vtmenu && grub_strncmp(unescaped, "VTMENU_", 7) == 0)
|
||||||
|
{
|
||||||
|
p = unescaped;
|
||||||
|
while ((*p >= 'A' && *p <= 'Z') || *p == '_')
|
||||||
|
{
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ch = *p;
|
||||||
|
*p = 0;
|
||||||
|
if (state[3].set)
|
||||||
|
{
|
||||||
|
grub_xputs("\n");
|
||||||
|
}
|
||||||
|
grub_xputs(ventoy_get_vmenu_title(unescaped));
|
||||||
|
|
||||||
|
*p = ch;
|
||||||
|
grub_xputs(p);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_xputs (unescaped);
|
||||||
|
}
|
||||||
|
|
||||||
|
grub_free (unescaped);
|
||||||
|
|
||||||
|
/* If another argument follows, insert a space. */
|
||||||
|
if ((0 == vtmenu) && (i != argc - 1))
|
||||||
|
grub_printf (" " );
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newline)
|
||||||
|
grub_printf ("\n");
|
||||||
|
|
||||||
|
grub_refresh ();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static grub_extcmd_t cmd;
|
||||||
|
|
||||||
|
GRUB_MOD_INIT(echo)
|
||||||
|
{
|
||||||
|
cmd = grub_register_extcmd ("echo", grub_cmd_echo,
|
||||||
|
GRUB_COMMAND_ACCEPT_DASH
|
||||||
|
| GRUB_COMMAND_OPTIONS_AT_START,
|
||||||
|
N_("[-e|-n] STRING"), N_("Display a line of text."),
|
||||||
|
options);
|
||||||
|
}
|
||||||
|
|
||||||
|
GRUB_MOD_FINI(echo)
|
||||||
|
{
|
||||||
|
grub_unregister_extcmd (cmd);
|
||||||
|
}
|
@@ -362,7 +362,8 @@ static grub_err_t
|
|||||||
cmd_append (const char *line, struct syslinux_menu *menu)
|
cmd_append (const char *line, struct syslinux_menu *menu)
|
||||||
{
|
{
|
||||||
if (!menu->entries)
|
if (!menu->entries)
|
||||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, "kernel without label");
|
return GRUB_ERR_NONE;
|
||||||
|
//return grub_error (GRUB_ERR_BAD_ARGUMENT, "kernel without label");
|
||||||
|
|
||||||
menu->entries->append = grub_strdup (line);
|
menu->entries->append = grub_strdup (line);
|
||||||
if (!menu->entries->append)
|
if (!menu->entries->append)
|
||||||
|
@@ -2079,6 +2079,13 @@ static int ventoy_collect_img_files(const char *filename, const struct grub_dirh
|
|||||||
img->menu_prefix = "miso";
|
img->menu_prefix = "miso";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (img_type_img == type)
|
||||||
|
{
|
||||||
|
if (ventoy_plugin_check_memdisk(img->path))
|
||||||
|
{
|
||||||
|
img->menu_prefix = "mimg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
debug("Add %s%s to list %d\n", node->dir, filename, g_ventoy_img_count);
|
debug("Add %s%s to list %d\n", node->dir, filename, g_ventoy_img_count);
|
||||||
}
|
}
|
||||||
@@ -6177,12 +6184,21 @@ static grub_err_t ventoy_cmd_fs_ignore_case(grub_extcmd_context_t ctxt, int argc
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static grub_err_t ventoy_cmd_init_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
{
|
||||||
|
(void)ctxt;
|
||||||
|
(void)argc;
|
||||||
|
|
||||||
|
ventoy_plugin_load_menu_lang(1, args[0]);
|
||||||
|
VENTOY_CMD_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
static grub_err_t ventoy_cmd_load_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args)
|
static grub_err_t ventoy_cmd_load_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
{
|
{
|
||||||
(void)ctxt;
|
(void)ctxt;
|
||||||
(void)argc;
|
(void)argc;
|
||||||
|
|
||||||
ventoy_plugin_load_menu_lang(args[0]);
|
ventoy_plugin_load_menu_lang(0, args[0]);
|
||||||
VENTOY_CMD_RETURN(0);
|
VENTOY_CMD_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6399,6 +6415,7 @@ static cmd_para ventoy_cmds[] =
|
|||||||
{ "vt_limine_menu", ventoy_cmd_linux_limine_menu, 0, NULL, "", "", NULL },
|
{ "vt_limine_menu", ventoy_cmd_linux_limine_menu, 0, NULL, "", "", NULL },
|
||||||
{ "vt_secondary_recover_mode", ventoy_cmd_secondary_recover_mode, 0, NULL, "", "", NULL },
|
{ "vt_secondary_recover_mode", ventoy_cmd_secondary_recover_mode, 0, NULL, "", "", NULL },
|
||||||
{ "vt_load_menu_lang", ventoy_cmd_load_menu_lang, 0, NULL, "", "", NULL },
|
{ "vt_load_menu_lang", ventoy_cmd_load_menu_lang, 0, NULL, "", "", NULL },
|
||||||
|
{ "vt_init_menu_lang", ventoy_cmd_init_menu_lang, 0, NULL, "", "", NULL },
|
||||||
{ "vt_cur_menu_lang", ventoy_cmd_cur_menu_lang, 0, NULL, "", "", NULL },
|
{ "vt_cur_menu_lang", ventoy_cmd_cur_menu_lang, 0, NULL, "", "", NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -99,6 +99,19 @@
|
|||||||
}\
|
}\
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define VTOY_SKIP_SPACE(s) \
|
||||||
|
while (ventoy_isspace(*s)) \
|
||||||
|
{\
|
||||||
|
s++;\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define VTOY_SKIP_SPACE_NEXT(s, initial) \
|
||||||
|
s += initial;\
|
||||||
|
while (ventoy_isspace(*s)) \
|
||||||
|
{\
|
||||||
|
s++;\
|
||||||
|
}
|
||||||
|
|
||||||
typedef enum VTOY_FILE_FLT
|
typedef enum VTOY_FILE_FLT
|
||||||
{
|
{
|
||||||
VTOY_FILE_FLT_ISO = 0, /* .iso */
|
VTOY_FILE_FLT_ISO = 0, /* .iso */
|
||||||
@@ -1261,7 +1274,7 @@ grub_err_t ventoy_cmd_browser_disk(grub_extcmd_context_t ctxt, int argc, char **
|
|||||||
int ventoy_get_fs_type(const char *fs);
|
int ventoy_get_fs_type(const char *fs);
|
||||||
int ventoy_img_name_valid(const char *filename, grub_size_t namelen);
|
int ventoy_img_name_valid(const char *filename, grub_size_t namelen);
|
||||||
void * ventoy_alloc_chain(grub_size_t size);
|
void * ventoy_alloc_chain(grub_size_t size);
|
||||||
int ventoy_plugin_load_menu_lang(const char *lang);
|
int ventoy_plugin_load_menu_lang(int init, const char *lang);
|
||||||
const char *ventoy_get_vmenu_title(const char *vMenu);
|
const char *ventoy_get_vmenu_title(const char *vMenu);
|
||||||
grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args);
|
grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
extern int ventoy_menu_push_key(int code);
|
extern int ventoy_menu_push_key(int code);
|
||||||
|
@@ -177,10 +177,7 @@ static grub_err_t ventoy_isolinux_initrd_collect(grub_file_t file, const char *p
|
|||||||
{
|
{
|
||||||
nextline = ventoy_get_line(start);
|
nextline = ventoy_get_line(start);
|
||||||
|
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
offset = 7; // strlen("initrd=") or "INITRD " or "initrd "
|
offset = 7; // strlen("initrd=") or "INITRD " or "initrd "
|
||||||
pos = grub_strstr(start, "initrd=");
|
pos = grub_strstr(start, "initrd=");
|
||||||
@@ -438,10 +435,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
|||||||
{
|
{
|
||||||
nextline = ventoy_get_line(start);
|
nextline = ventoy_get_line(start);
|
||||||
|
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (grub_strncmp(start, "initrd", 6) != 0)
|
if (grub_strncmp(start, "initrd", 6) != 0)
|
||||||
{
|
{
|
||||||
@@ -454,10 +448,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
|||||||
start++;
|
start++;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*start == '"')
|
if (*start == '"')
|
||||||
{
|
{
|
||||||
@@ -528,10 +519,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
|||||||
|
|
||||||
if (*start == ' ' || *start == '\t')
|
if (*start == ' ' || *start == '\t')
|
||||||
{
|
{
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1813,18 +1801,12 @@ static char *ventoy_systemd_conf_tag(char *buf, const char *tag, int optional)
|
|||||||
for (start = buf; start; start = nextline)
|
for (start = buf; start; start = nextline)
|
||||||
{
|
{
|
||||||
nextline = ventoy_get_line(start);
|
nextline = ventoy_get_line(start);
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (grub_strncmp(start, tag, taglen) == 0 && (start[taglen] == ' ' || start[taglen] == '\t'))
|
if (grub_strncmp(start, tag, taglen) == 0 && (start[taglen] == ' ' || start[taglen] == '\t'))
|
||||||
{
|
{
|
||||||
start += taglen;
|
start += taglen;
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2038,10 +2020,7 @@ grub_err_t ventoy_cmd_linux_limine_menu(grub_extcmd_context_t ctxt, int argc, ch
|
|||||||
for (start = filebuf; start; start = nextline)
|
for (start = filebuf; start; start = nextline)
|
||||||
{
|
{
|
||||||
nextline = ventoy_get_line(start);
|
nextline = ventoy_get_line(start);
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start[0] == ':')
|
if (start[0] == ':')
|
||||||
{
|
{
|
||||||
|
@@ -3474,7 +3474,7 @@ const char *ventoy_get_vmenu_title(const char *vMenu)
|
|||||||
return vtoy_json_get_string_ex(g_menu_lang_json->pstChild, vMenu);
|
return vtoy_json_get_string_ex(g_menu_lang_json->pstChild, vMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ventoy_plugin_load_menu_lang(const char *lang)
|
int ventoy_plugin_load_menu_lang(int init, const char *lang)
|
||||||
{
|
{
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
grub_file_t file = NULL;
|
grub_file_t file = NULL;
|
||||||
@@ -3528,9 +3528,12 @@ int ventoy_plugin_load_menu_lang(const char *lang)
|
|||||||
grub_snprintf(g_ventoy_hotkey_tip, sizeof(g_ventoy_hotkey_tip), "%s", ventoy_get_vmenu_title("VTMENU_STR_HOTKEY_LIST"));
|
grub_snprintf(g_ventoy_hotkey_tip, sizeof(g_ventoy_hotkey_tip), "%s", ventoy_get_vmenu_title("VTMENU_STR_HOTKEY_LIST"));
|
||||||
}
|
}
|
||||||
|
|
||||||
ventoy_menu_push_key(GRUB_TERM_ESC);
|
if (init == 0)
|
||||||
ventoy_menu_push_key(GRUB_TERM_ESC);
|
{
|
||||||
g_ventoy_menu_refresh = 1;
|
ventoy_menu_push_key(GRUB_TERM_ESC);
|
||||||
|
ventoy_menu_push_key(GRUB_TERM_ESC);
|
||||||
|
g_ventoy_menu_refresh = 1;
|
||||||
|
}
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
@@ -12,7 +12,7 @@ make install
|
|||||||
PATH=$VT_DIR/GRUB2/INSTALL/bin/:$VT_DIR/GRUB2/INSTALL/sbin/:$PATH
|
PATH=$VT_DIR/GRUB2/INSTALL/bin/:$VT_DIR/GRUB2/INSTALL/sbin/:$PATH
|
||||||
|
|
||||||
net_modules_legacy="net tftp http"
|
net_modules_legacy="net tftp http"
|
||||||
all_modules_legacy="file setkey date drivemap blocklist regexp newc vga_text ntldr search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio lspci pci ext2 xfs ventoy chain read halt iso9660 linux16 test true sleep reboot echo videotest videoinfo videotest_checksum video_colors video_cirrus video_bochs vga vbe video_fb font video gettext extcmd terminal linux minicmd help configfile tr trig boot biosdisk disk ls tar squash4 password_pbkdf2 all_video png jpeg part_gpt part_msdos fat exfat ntfs loopback gzio normal udf gfxmenu gfxterm gfxterm_background gfxterm_menu smbios zfs"
|
all_modules_legacy="file date drivemap blocklist newc vga_text ntldr search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio lspci pci ext2 xfs ventoy chain read halt iso9660 linux16 test true sleep reboot echo videotest videoinfo videotest_checksum video_colors video_cirrus video_bochs vga vbe font video gettext extcmd terminal linux minicmd help configfile tr trig boot biosdisk disk ls tar squash4 password_pbkdf2 all_video png jpeg part_gpt part_msdos fat exfat ntfs loopback gzio normal udf gfxmenu gfxterm gfxterm_background gfxterm_menu smbios"
|
||||||
|
|
||||||
net_modules_uefi="efinet net tftp http"
|
net_modules_uefi="efinet net tftp http"
|
||||||
all_modules_uefi="file setkey blocklist ventoy test true regexp newc search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux relocator jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop efi_uga video_bochs video_cirrus video video_fb gfxterm_background gfxterm_menu mouse fwload smbios zfs"
|
all_modules_uefi="file setkey blocklist ventoy test true regexp newc search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux relocator jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop efi_uga video_bochs video_cirrus video video_fb gfxterm_background gfxterm_menu mouse fwload smbios zfs"
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -14,14 +14,14 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.md5" ]; then
|
|||||||
echo "$vtReadChecksum"
|
echo "$vtReadChecksum"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n\npress ENTER to exit ..."
|
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
menuentry "@VTMENU_CHKSUM_MD5_CALC" --class=checksum_md5 {
|
menuentry "@VTMENU_CHKSUM_MD5_CALC" --class=checksum_md5 {
|
||||||
md5sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
md5sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||||
|
|
||||||
echo -e "\n\npress ENTER to exit ..."
|
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
@@ -41,14 +41,14 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha1" ]; then
|
|||||||
echo "$vtReadChecksum"
|
echo "$vtReadChecksum"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n\npress ENTER to exit ..."
|
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
menuentry "@VTMENU_CHKSUM_SHA1_CALC" --class=checksum_sha1 {
|
menuentry "@VTMENU_CHKSUM_SHA1_CALC" --class=checksum_sha1 {
|
||||||
sha1sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
sha1sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||||
|
|
||||||
echo -e "\n\npress ENTER to exit ..."
|
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
@@ -70,14 +70,14 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha256" ]; then
|
|||||||
echo "$vtReadChecksum"
|
echo "$vtReadChecksum"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n\npress ENTER to exit ..."
|
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
menuentry "@VTMENU_CHKSUM_SHA256_CALC" --class=checksum_sha256 {
|
menuentry "@VTMENU_CHKSUM_SHA256_CALC" --class=checksum_sha256 {
|
||||||
sha256sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
sha256sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||||
|
|
||||||
echo -e "\n\npress ENTER to exit ..."
|
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
@@ -99,14 +99,14 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha512" ]; then
|
|||||||
echo "$vtReadChecksum"
|
echo "$vtReadChecksum"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n\npress ENTER to exit ..."
|
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
menuentry "@VTMENU_CHKSUM_SHA512_CALC" --class=checksum_sha512{
|
menuentry "@VTMENU_CHKSUM_SHA512_CALC" --class=checksum_sha512{
|
||||||
sha512sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
sha512sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||||
|
|
||||||
echo -e "\n\npress ENTER to exit ..."
|
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
@@ -56,14 +56,14 @@ if [ "$grub_platform" != "pc" ]; then
|
|||||||
chainloader ${vtoy_path}/vtoyutil_${VTOY_EFI_ARCH}.efi env_param=${env_param} ${vtdebug_flag} feature=show_efi_drivers
|
chainloader ${vtoy_path}/vtoyutil_${VTOY_EFI_ARCH}.efi env_param=${env_param} ${vtdebug_flag} feature=show_efi_drivers
|
||||||
boot
|
boot
|
||||||
vt_pop_pager
|
vt_pop_pager
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
|
|
||||||
menuentry '@VTMENU_UTIL_FIX_BLINIT_FAIL' --class=debug_util_blinit --class=debug_util --class=F5tool {
|
menuentry '@VTMENU_UTIL_FIX_BLINIT_FAIL' --class=debug_util_blinit --class=debug_util --class=F5tool {
|
||||||
chainloader ${vtoy_path}/vtoyutil_${VTOY_EFI_ARCH}.efi env_param=${env_param} ${vtdebug_flag} feature=fix_windows_mmap
|
chainloader ${vtoy_path}/vtoyutil_${VTOY_EFI_ARCH}.efi env_param=${env_param} ${vtdebug_flag} feature=fix_windows_mmap
|
||||||
boot
|
boot
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path control $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path control $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -88,7 +88,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path theme $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path theme $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -97,7 +97,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path auto_install $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path auto_install $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -109,7 +109,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
echo -e "\n############### dump persistence ###############"
|
echo -e "\n############### dump persistence ###############"
|
||||||
vt_dump_persistence
|
vt_dump_persistence
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -118,7 +118,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path menu_alias $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path menu_alias $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -127,7 +127,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path menu_tip $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path menu_tip $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -136,7 +136,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path menu_class $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path menu_class $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -145,7 +145,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path injection $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path injection $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -154,7 +154,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path auto_memdisk $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path auto_memdisk $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -163,7 +163,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path image_list $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path image_list $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -172,7 +172,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path image_blacklist $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path image_blacklist $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -181,7 +181,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path conf_replace $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path conf_replace $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -190,7 +190,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path dud $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path dud $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
@@ -199,7 +199,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
|||||||
set pager=1
|
set pager=1
|
||||||
vt_check_plugin_json $vt_plugin_path password $vtoy_iso_part
|
vt_check_plugin_json $vt_plugin_path password $vtoy_iso_part
|
||||||
|
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
unset pager
|
unset pager
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,12 @@
|
|||||||
#
|
#
|
||||||
#************************************************************************************
|
#************************************************************************************
|
||||||
|
|
||||||
|
if [ "$grub_platform" = "pc" ]; then
|
||||||
|
insmod setkey
|
||||||
|
insmod regexp
|
||||||
|
insmod video_fb
|
||||||
|
fi
|
||||||
|
|
||||||
function ventoy_pause {
|
function ventoy_pause {
|
||||||
echo "press Enter to continue ......"
|
echo "press Enter to continue ......"
|
||||||
read vtTmpPause
|
read vtTmpPause
|
||||||
@@ -85,7 +91,7 @@ function ventoy_ext_menu {
|
|||||||
unset ventoy_new_context
|
unset ventoy_new_context
|
||||||
else
|
else
|
||||||
echo "ventoy_grub.cfg NOT exist."
|
echo "ventoy_grub.cfg NOT exist."
|
||||||
echo -e "\npress ENTER to exit ..."
|
echo -V "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -847,6 +853,13 @@ function uefi_linux_menu_func {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $vtback_cfg_find -eq 0 ]; then
|
||||||
|
if [ -f (loop)/boot/isolinux/syslnx64.cfg ]; then
|
||||||
|
syslinux_configfile (loop)/boot/isolinux/syslnx64.cfg
|
||||||
|
set vtback_cfg_find=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$vtback_cfg_find" = "0" ]; then
|
if [ "$vtback_cfg_find" = "0" ]; then
|
||||||
echo " "
|
echo " "
|
||||||
echo "No bootfile found for UEFI!"
|
echo "No bootfile found for UEFI!"
|
||||||
@@ -1314,6 +1327,13 @@ function legacy_linux_menu_func {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $vtback_cfg_find -eq 0 ]; then
|
||||||
|
if [ -f (loop)/boot/isolinux/syslnx64.cfg ]; then
|
||||||
|
syslinux_configfile (loop)/boot/isolinux/syslnx64.cfg
|
||||||
|
set vtback_cfg_find=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
vt_unset_boot_opt
|
vt_unset_boot_opt
|
||||||
set root=$vtback_root
|
set root=$vtback_root
|
||||||
set theme=$vtback_theme
|
set theme=$vtback_theme
|
||||||
@@ -1481,7 +1501,7 @@ function iso_common_menuentry {
|
|||||||
echo -e "\n $vt_volume_space $vt_chosen_size $vt_chosen_size_mod\n"
|
echo -e "\n $vt_volume_space $vt_chosen_size $vt_chosen_size_mod\n"
|
||||||
echo -e "\n The size of the iso file \"$vt_chosen_size\" is invalid. File corrupted ?\n"
|
echo -e "\n The size of the iso file \"$vt_chosen_size\" is invalid. File corrupted ?\n"
|
||||||
echo -e " 此ISO文件的大小 \"$vt_chosen_size\" 有问题,请确认文件是否损坏。\n"
|
echo -e " 此ISO文件的大小 \"$vt_chosen_size\" 有问题,请确认文件是否损坏。\n"
|
||||||
echo -e "\n press ENTER to continue (请按 回车 键继续) ..."
|
echo -v "VTMENU_ENTER_CONTINUE ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -1569,7 +1589,7 @@ function miso_common_menuentry {
|
|||||||
function common_unsupport_menuentry {
|
function common_unsupport_menuentry {
|
||||||
echo -e "\n The name of the iso file could NOT contain space or non-ascii characters. \n"
|
echo -e "\n The name of the iso file could NOT contain space or non-ascii characters. \n"
|
||||||
echo -e " 文件名中不能有中文或空格 \n"
|
echo -e " 文件名中不能有中文或空格 \n"
|
||||||
echo -e "\npress ENTER to exit (请按 回车 键返回) ..."
|
echo -V "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1716,7 +1736,7 @@ function vhd_common_menuentry {
|
|||||||
echo -e "!!! WARNING !!!\n"
|
echo -e "!!! WARNING !!!\n"
|
||||||
echo -e "\nPartition1 ($vtoy_iso_fs) is NOT ntfs, the VHD(x) file may not boot normally \n"
|
echo -e "\nPartition1 ($vtoy_iso_fs) is NOT ntfs, the VHD(x) file may not boot normally \n"
|
||||||
echo -e "\nVHD(x) 文件所在分区不是 ntfs 格式, 可能无法正常启动 \n\n"
|
echo -e "\nVHD(x) 文件所在分区不是 ntfs 格式, 可能无法正常启动 \n\n"
|
||||||
echo -n "press ENTER to continue boot (请按 回车 键继续) ..."
|
echo -vn "VTMENU_ENTER_CONTINUE ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -1825,7 +1845,7 @@ function vtoy_unsupport_menuentry {
|
|||||||
|
|
||||||
function only_uefi_tip {
|
function only_uefi_tip {
|
||||||
echo -e "\n This IMG file is only supported in UEFI mode. \n"
|
echo -e "\n This IMG file is only supported in UEFI mode. \n"
|
||||||
echo -e "\n press ENTER to exit ..."
|
echo -V "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2083,7 +2103,7 @@ function ventoy_img_openwrt {
|
|||||||
ventoy_gui_console
|
ventoy_gui_console
|
||||||
echo -e "\n ventoy_openwrt.xz not found. Please refer https://www.ventoy.net/en/doc_openwrt.html.\n"
|
echo -e "\n ventoy_openwrt.xz not found. Please refer https://www.ventoy.net/en/doc_openwrt.html.\n"
|
||||||
echo -e " 未找到 ventoy_openwrt.xz 文件。请参考 https://www.ventoy.net/cn/doc_openwrt.html\n"
|
echo -e " 未找到 ventoy_openwrt.xz 文件。请参考 https://www.ventoy.net/cn/doc_openwrt.html\n"
|
||||||
echo -e "\n press ENTER to exit (请按 回车 键返回) ..."
|
echo -V "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
ventoy_cli_console
|
ventoy_cli_console
|
||||||
return
|
return
|
||||||
@@ -2215,7 +2235,7 @@ function ventoy_img_memtest86 {
|
|||||||
function img_unsupport_tip {
|
function img_unsupport_tip {
|
||||||
echo -e "\n This IMG file is NOT supported now. \n"
|
echo -e "\n This IMG file is NOT supported now. \n"
|
||||||
echo -e " 当前不支持启动此 IMG 文件 \n"
|
echo -e " 当前不支持启动此 IMG 文件 \n"
|
||||||
echo -e "\npress ENTER to exit (请按 回车 键返回) ..."
|
echo -V "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2315,13 +2335,14 @@ function img_common_menuentry {
|
|||||||
ventoy_img_ubos
|
ventoy_img_ubos
|
||||||
elif [ -f (vtimghd,2)/etc/openwrt_version ]; then
|
elif [ -f (vtimghd,2)/etc/openwrt_version ]; then
|
||||||
ventoy_img_openwrt
|
ventoy_img_openwrt
|
||||||
elif [ -f (vtimghd,1)/efi/boot/mt86.png ]; then
|
|
||||||
if [ "$grub_platform" = "pc" ]; then
|
|
||||||
img_unsupport_tip
|
|
||||||
else
|
|
||||||
ventoy_img_memtest86
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
|
if [ -f (vtimghd,1)/efi/boot/mt86.png ]; then
|
||||||
|
if [ "$grub_platform" = "pc" ]; then
|
||||||
|
img_unsupport_tip
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#common chain
|
||||||
vt_linux_chain_data "${vtoy_iso_part}${vt_chosen_path}"
|
vt_linux_chain_data "${vtoy_iso_part}${vt_chosen_path}"
|
||||||
ventoy_acpi_param ${vtoy_chain_mem_addr} 512
|
ventoy_acpi_param ${vtoy_chain_mem_addr} 512
|
||||||
if [ "$grub_platform" = "pc" ]; then
|
if [ "$grub_platform" = "pc" ]; then
|
||||||
@@ -2346,6 +2367,28 @@ function img_unsupport_menuentry {
|
|||||||
common_unsupport_menuentry
|
common_unsupport_menuentry
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mimg_common_menuentry {
|
||||||
|
vt_chosen_img_path vt_chosen_path vt_chosen_size vt_chosen_name
|
||||||
|
|
||||||
|
if vt_check_password "${vt_chosen_path}"; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "memdisk mode boot for $vt_chosen_path"
|
||||||
|
echo ""
|
||||||
|
ventoy_debug_pause
|
||||||
|
|
||||||
|
if [ "$grub_platform" = "pc" ]; then
|
||||||
|
legacy_img_memdisk $vtoy_iso_part "$vt_chosen_path"
|
||||||
|
else
|
||||||
|
vt_load_img_memdisk "$vtoy_iso_part$vt_chosen_path" vtoy_img_buf
|
||||||
|
ventoy_cli_console
|
||||||
|
chainloader ${vtoy_path}/ventoy_${VTOY_EFI_ARCH}.efi memdisk env_param=${env_param} isoefi=${LoadIsoEfiDriver} ${vtdebug_flag} mem:${vtoy_img_buf_addr}:size:${vtoy_img_buf_size}
|
||||||
|
boot
|
||||||
|
ventoy_gui_console
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
@@ -2354,7 +2397,7 @@ function img_unsupport_menuentry {
|
|||||||
#############################################################
|
#############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|
||||||
set VENTOY_VERSION="1.0.83"
|
set VENTOY_VERSION="1.0.85"
|
||||||
|
|
||||||
#ACPI not compatible with Window7/8, so disable by default
|
#ACPI not compatible with Window7/8, so disable by default
|
||||||
set VTOY_PARAM_NO_ACPI=1
|
set VTOY_PARAM_NO_ACPI=1
|
||||||
@@ -2457,9 +2500,9 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$VTOY_MENU_LANGUAGE" ]; then
|
if [ -n "$VTOY_MENU_LANGUAGE" ]; then
|
||||||
vt_load_menu_lang "$VTOY_MENU_LANGUAGE"
|
vt_init_menu_lang "$VTOY_MENU_LANGUAGE"
|
||||||
else
|
else
|
||||||
vt_load_menu_lang en_US
|
vt_init_menu_lang en_US
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$VTOY_MENU_TIMEOUT" ]; then
|
if [ -n "$VTOY_MENU_TIMEOUT" ]; then
|
||||||
|
18
INSTALL/grub/help/ar_AR.txt
Normal file
18
INSTALL/grub/help/ar_AR.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
L - اختيار اللغة
|
||||||
|
F1 - عرض معلومات المساعدة
|
||||||
|
F2 - استعراض وتشغيل الملفات في القرص المحلي
|
||||||
|
F3 - تبديل وضع القائمة بين Treeview <-> ListView
|
||||||
|
F4 - تشغيل ويندوز / لينكس على القرص المحلي
|
||||||
|
F5 - الأدوات المساعده
|
||||||
|
F6 - تحميل قائمة Grub2 المخصصة
|
||||||
|
F7 - التبديل بين وضع الواجهة الرسومية <-> وضع النص
|
||||||
|
|
||||||
|
m / Ctrl + m - تحقق من صحة الملفات الصور (md5 / sha1 / sha256 / sha512)
|
||||||
|
d / Ctrl + d - وضع Memdisk (فقط للصغير WinPE / LiveCD ISO / IMG)
|
||||||
|
w / Ctrl + w - وضع WIMBOOT (فقط للويندوز القياسي ISO)
|
||||||
|
r / Ctrl + r - وضع Grub2 (يدعم بعض توزيعات لينكس)
|
||||||
|
i / Ctrl + i - وضع متوافق (فقط للتدقيق)
|
||||||
|
u / Ctrl + u - تحميل برنامج التشغيل EFI ISO (فقط للتدقيق، غير مستخدم رسمي)
|
||||||
|
|
||||||
|
|
||||||
|
اضغط على ESC للعودة ......
|
@@ -1,8 +1,8 @@
|
|||||||
L - Language Select
|
L - Language Select
|
||||||
F1 - Display this help information
|
F1 - Display help information
|
||||||
F2 - Browse and boot files in local disk
|
F2 - Browse and boot files in the local disk
|
||||||
F3 - Switch menu mode between Treeview <-> ListView
|
F3 - Switch menu mode between Treeview <-> ListView
|
||||||
F4 - Boot Windows/Linux in local disk
|
F4 - Boot Windows/Linux on the local disk
|
||||||
F5 - Utilities
|
F5 - Utilities
|
||||||
F6 - Load Custom Grub2 Menu
|
F6 - Load Custom Grub2 Menu
|
||||||
F7 - Switch between GUI Mode <-> TEXT Mode
|
F7 - Switch between GUI Mode <-> TEXT Mode
|
||||||
@@ -11,8 +11,8 @@ m/Ctrl+m - Checksum image files (md5/sha1/sha256/sha512)
|
|||||||
d/Ctrl+d - Memdisk Mode (Only for small WinPE/LiveCD ISO/IMG)
|
d/Ctrl+d - Memdisk Mode (Only for small WinPE/LiveCD ISO/IMG)
|
||||||
w/Ctrl+w - WIMBOOT Mode (Only for standard Windows ISO)
|
w/Ctrl+w - WIMBOOT Mode (Only for standard Windows ISO)
|
||||||
r/Ctrl+r - Grub2 Mode (Only for some Linux distros)
|
r/Ctrl+r - Grub2 Mode (Only for some Linux distros)
|
||||||
i/Ctrl+i - Compatible Mode (Just only for debug)
|
i/Ctrl+i - Compatible Mode (Only for debugging)
|
||||||
u/Ctrl+u - Load ISO efi driver (Just only for debug, can not be used officially)
|
u/Ctrl+u - Load ISO EFI driver (Only for debugging, cannot be used officially)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,19 +1,19 @@
|
|||||||
L - Sélection de la langue
|
L - Sélection de la langue
|
||||||
F1 - Afficher cette aide
|
F1 - Afficher l’aide
|
||||||
F2 - Browse and boot files in local disk
|
F2 - Démarrer à partir d’un disque local
|
||||||
F3 - Basculer l'affichage 'Vue en arbre' <-> 'Vue en liste'
|
F3 - Basculer l’affichage Vue en arbre <-> Vue en liste
|
||||||
F4 - Démarrer le système Windows/Linux local
|
F4 - Démarrer un système Windows ou Linux local
|
||||||
F5 - Utilitaires
|
F5 - Utilitaires
|
||||||
F6 - Charger le menu Grub2 personnalisé
|
F6 - Charger le menu GRUB 2 personnalisé
|
||||||
F7 - Basculer entre le mode graphique <-> mode texte
|
F7 - Basculer entre le mode graphique <-> mode texte
|
||||||
|
|
||||||
m/Ctrl+m - Somme de contrôle des images (md5/sha1/sha256/sha512)
|
m/Ctrl+m - Somme de contrôle des images (md5/sha1/sha256/sha512)
|
||||||
d/Ctrl+d - Mode Memdisk (Seulement pour WinPE/LiveCD ISO/IMG)
|
d/Ctrl+d - Mode Memdisk (pour WinPE/LiveCD ISO/IMG uniquement)
|
||||||
w/Ctrl+w - Mode WIMBOOT (seulement pour les images standards Windows)
|
w/Ctrl+w - Mode WIMBOOT (pour images standards Windows uniquement)
|
||||||
r/Ctrl+r - Mode Grub2 (seulement pour quelques Linux)
|
r/Ctrl+r - Mode GRUB 2 (pour quelques distributions Linux uniquement)
|
||||||
i/Ctrl+i - Mode Compatible (seulement à fins de tests)
|
i/Ctrl+i - Mode Compatible (pour débug uniquement)
|
||||||
u/Ctrl+u - Load ISO efi driver (Just only for debug, can not be used officially)
|
u/Ctrl+u - Charger l’ISO d’un pilote EFI (pour débug uniquement)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Appuyer sur Echap pour sortir ......
|
Appuyer sur Echap pour sortir…
|
||||||
|
19
INSTALL/grub/help/hu_HU.txt
Normal file
19
INSTALL/grub/help/hu_HU.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
L - Nyelv kiválasztása
|
||||||
|
F1 - Jelenítse meg ezt a súgóinformációt
|
||||||
|
F2 - A helyi lemezen lévő fájlok böngészése és indítása
|
||||||
|
F3 - Menü mód váltása Fanézet <-> Listanézet között
|
||||||
|
F4 - Windows/Linux indítása helyi lemezről
|
||||||
|
F5 - Segédprogramok
|
||||||
|
F6 - Egyéni Grub2 menü betöltése
|
||||||
|
F7 - Váltás Grafikus mód <-> Szövege mód között
|
||||||
|
|
||||||
|
m/Ctrl+m - Image fájlok ell.összege (md5/sha1/sha256/sha512)
|
||||||
|
d/Ctrl+d - Memdisk mód (Csak kis WinPE/LiveCD ISO/IMG esetén)
|
||||||
|
w/Ctrl+w - WIMBOOT mód (Csak szabványos Windows ISO esetében)
|
||||||
|
r/Ctrl+r - Grub2 mód (Csak néhány Linux disztró esetében)
|
||||||
|
i/Ctrl+i - Kompatibilis mód (Csak hibakeresésre)
|
||||||
|
u/Ctrl+u - ISO efi driver betöltés (Csak hibakeresésre, hivatalosan nem használható.)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Nyomjon ESC-et a visszatéréshez ......
|
@@ -1,8 +1,8 @@
|
|||||||
L - Pilih Bahasa
|
L - Pilih Bahasa
|
||||||
F1 - Tampilkan bantuan informasi ini
|
F1 - Tampilkan bantuan informasi ini
|
||||||
F2 - Browse and boot files in local disk
|
F2 - Jelajah dan jalankan boot berkas pada disk lokal
|
||||||
F3 - Beralih mode menu antara Treeview <-> ListView
|
F3 - Beralih mode menu antara Treeview <-> ListView
|
||||||
F4 - Jalankan (boot) Windows/Linux pada disk lokal
|
F4 - Jalankan boot ke Windows/Linux pada disk lokal
|
||||||
F5 - Alat Utilitas
|
F5 - Alat Utilitas
|
||||||
F6 - Memuat ubah suai Grub2 Menu
|
F6 - Memuat ubah suai Grub2 Menu
|
||||||
F7 - Beralih antara mode GUI <-> Mode TEXT
|
F7 - Beralih antara mode GUI <-> Mode TEXT
|
||||||
|
19
INSTALL/grub/help/ka_GE.txt
Normal file
19
INSTALL/grub/help/ka_GE.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
L - ინტერფეისის ენის არჩევა
|
||||||
|
F1 - დამხმარე ინფორმაციის ჩვენება
|
||||||
|
F2 - ლოკალური დისკის ფაილების დათვალიერება და ჩატვირთვა
|
||||||
|
F3 - ჩვენების რეჟიმებს შორის გადართვა 'ხის ხედი' <-> 'სიის ხედი'
|
||||||
|
F4 - ლოკალური დისკიდან Windows/Linux-ის ჩატვირთვა
|
||||||
|
F5 - ხელსაწყოები
|
||||||
|
F6 - მომხმარებლის მიერ შექმნილი Grub2 მენიუს ჩატვირთვა
|
||||||
|
F7 - ჩვენების რეჟიმის გადართვა 'გრაფიკული' <-> 'ტექსტური'
|
||||||
|
|
||||||
|
m/Ctrl+m - ფაილის საკონტროლო ჯამის შემოწმება (md5/sha1/sha256/sha512)
|
||||||
|
d/Ctrl+d - Memdisk რეჟიმი (განკუთვნილია მხოლოდ პატარა ზომის WinPE/LiveCD ISO/IMG დისტრიბუტივებისთვის)
|
||||||
|
w/Ctrl+w - WIMBOOT რეჟიმი (განკუთვნილია მხოლოდ სტანდარტული Windows ISO დისტრიბუტივებისთვის)
|
||||||
|
r/Ctrl+r - Grub2 რეჟიმი (განკუთვნილია მხოლოდ ზოგიერთი Linux დისტრიბუტივებისთვის)
|
||||||
|
i/Ctrl+i - თავსებადი რეჟიმი (განკუთვნილია მხოლოდ გამართვისთვის)
|
||||||
|
u/Ctrl+u - ISO EFI დრაივერის ჩატვირთვა (განკუთვნილია მხოლოდ გამართვისთვის, დაუშვებელია ოფიციალური გამოყენება)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
დააჭირეთ ESC დაბრუნებისთვის ......
|
@@ -1,18 +1,18 @@
|
|||||||
L - 언어 선택
|
L - 언어 선택
|
||||||
F1 - 이 도움말 정보 표시
|
F1 - 이 도움말 정보 표시
|
||||||
F2 - 로컬 디스크에서 파일 찾아보기 및 부팅
|
F2 - 로컬 디스크에서 파일 찾아보기 및 부트
|
||||||
F3 - 트리보기 <-> 목록보기 간에 메뉴 모드 전환
|
F3 - 트리보기 <-> 목록보기 간에 메뉴 모드 전환
|
||||||
F4 - 로컬 디스크에서 Windows/Linux 부팅
|
F4 - 로컬 디스크에서 Windows/Linux 부트
|
||||||
F5 - 유틸리티
|
F5 - 유틸리티
|
||||||
F6 - 사용자 지정 Grub2 메뉴 로드
|
F6 - 사용자 지정 Grub2 메뉴 불러오기
|
||||||
F7 - GUI 모드 <-> TEXT 모드 간에 전환
|
F7 - GUI 모드 <-> TEXT 모드 간에 전환
|
||||||
|
|
||||||
m/Ctrl+m - 체크섬 이미지 파일 (md5/sha1/sha256/sha512)
|
m/Ctrl+m - 체크섬 이미지 파일 (md5/sha1/sha256/sha512)
|
||||||
d/Ctrl+d - WIMBOOT 모드 (표준 Windows ISO 전용)
|
d/Ctrl+d - Memdisk 모드 (작은 WinPE/LiveCD ISO/IMG 전용)
|
||||||
w/Ctrl+w - Memdisk 모드 (작은 WinPE/LiveCD ISO/IMG 전용)
|
w/Ctrl+w - WIMBOOT 모드 (표준 Windows ISO 전용)
|
||||||
r/Ctrl+r - Grub2 모드 (일부 Linux 배포판에만 해당)
|
r/Ctrl+r - Grub2 모드 (일부 Linux 배포판에만 해당)
|
||||||
i/Ctrl+i - 호환 모드 (디버그 전용)
|
i/Ctrl+i - 호환 모드 (디버그 전용)
|
||||||
u/Ctrl+u - ISO eFi 드라이버 로드 (디버그 전용, 공식적으로 사용할 수 없음)
|
u/Ctrl+u - ISO EFI 드라이버 불러오기 (디버그 전용, 공식적으로 사용할 수 없음)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
19
INSTALL/grub/help/pl_PL.txt
Normal file
19
INSTALL/grub/help/pl_PL.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
L - Wybierz język
|
||||||
|
F1 — Wyświetl informacje pomocy
|
||||||
|
F2 — przeglądanie i uruchamianie plików na dysku lokalnym
|
||||||
|
F3 — Przełącz tryb menu pomiędzy Treeview <-> ListView
|
||||||
|
F4 — Uruchom system Windows/Linux na dysku lokalnym
|
||||||
|
F5 — Narzędzia
|
||||||
|
F6 — Załaduj niestandardowe menu Grub2
|
||||||
|
F7 - Przełączanie między trybem GUI <-> trybem TEKST
|
||||||
|
|
||||||
|
m/Ctrl+m — Pliki obrazów z sumą kontrolną (md5/sha1/sha256/sha512)
|
||||||
|
d/Ctrl+d — Tryb Memdisk (tylko dla małych WinPE/LiveCD ISO/IMG)
|
||||||
|
w/Ctrl+w — tryb WIMBOOT (tylko dla standardowego systemu Windows ISO)
|
||||||
|
r/Ctrl+r — tryb Grub2 (tylko dla niektórych dystrybucji Linuksa)
|
||||||
|
i/Ctrl+i — tryb zgodności (tylko do debugowania)
|
||||||
|
u/Ctrl+u — Załaduj sterownik ISO EFI (tylko do debugowania, nie można go oficjalnie używać)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Naciśnij ESC, aby wrócić...
|
@@ -1,6 +1,6 @@
|
|||||||
L - Selecionar Idioma
|
L - Selecionar idioma
|
||||||
F1 - Mostra esta informação de ajuda
|
F1 - Mostra esta informação de ajuda
|
||||||
F2 - Browse and boot files in local disk
|
F2 - Navegar e arrancar ficheiros em disco local
|
||||||
F3 - Alternar o modo menu entre Vista de árvore <-> Vista de lista
|
F3 - Alternar o modo menu entre Vista de árvore <-> Vista de lista
|
||||||
F4 - Arrancar o Windows/Linux em disco local
|
F4 - Arrancar o Windows/Linux em disco local
|
||||||
F5 - Utilitários
|
F5 - Utilitários
|
||||||
|
19
INSTALL/grub/help/ta_IN.txt
Normal file
19
INSTALL/grub/help/ta_IN.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
L - மொழி தேர்வு
|
||||||
|
F1 - இந்த உதவித் தகவலைக் காட்டு
|
||||||
|
F2 - உள்ளூர் வட்டில் கோப்புகளை உலாவவும் துவக்கவும்
|
||||||
|
F3 - Treeview (மரப்பார்வை) <-> ListView (பட்டியல்பார்வை) இடையே மெனு பயன்முறையை மாற்றவும்
|
||||||
|
F4 - விண்டோஸ்/லினக்ஸை உள்ளூர் வட்டில் துவக்கவும்
|
||||||
|
F5 - பயன்பாடுகள்
|
||||||
|
F6 - தனிப்பயன் Grub2 மெனுவை ஏற்றவும்
|
||||||
|
F7 - GUI பயன்முறை <-> TEXT பயன்முறைக்கு இடையில் மாறவும்
|
||||||
|
|
||||||
|
m/Ctrl+m - செக்சம் படக் கோப்புகள் (md5/sha1/sha256/sha512)
|
||||||
|
d/Ctrl+d - Memdisk பயன்முறை (சிறிய WinPE/LiveCD ISO/IMGக்கு மட்டும்)
|
||||||
|
w/Ctrl+w - WIMBOOT பயன்முறை (நிலையான Windows ISO க்கு மட்டும்)
|
||||||
|
r/Ctrl+r - Grub2 பயன்முறை (சில லினக்ஸ் டிஸ்ட்ரோக்களுக்கு மட்டும்)
|
||||||
|
i/Ctrl+i - இணக்கமான பயன்முறை (பிழைத்திருத்தத்திற்கு மட்டும்)
|
||||||
|
u/Ctrl+u - ISO efi இயக்கியை ஏற்றவும் (பிழைத்திருத்தத்திற்கு மட்டும், அதிகாரப்பூர்வமாக பயன்படுத்த முடியாது)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
திரும்புவதற்கு ESC ஐ அழுத்தவும் ......
|
18
INSTALL/grub/help/zh_TW.txt
Normal file
18
INSTALL/grub/help/zh_TW.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
L - 選擇語言
|
||||||
|
F1 - 顯示本説明資訊
|
||||||
|
F2 - 瀏覽並啟動本地硬碟中的映像檔
|
||||||
|
F3 - 功能表顯示模式切換。可在清單模式和目錄模式之間自由切換。
|
||||||
|
F4 - 啟動本地硬碟上的 Windows/Linux 等系統。
|
||||||
|
F5 - 各類工具
|
||||||
|
F6 - 載入自訂 GRUB2 選單。
|
||||||
|
F7 - 介面在文字模式和圖形模式之間切換。
|
||||||
|
|
||||||
|
m/Ctrl+m - 計算檔案校驗值(md5/sha1/sha256/sha512)
|
||||||
|
d/Ctrl+d - MEMDISK 模式,把檔載入到記憶體啟動(只適用於檔很小的 WinPE/LiveCD等)
|
||||||
|
w/Ctrl+w - WIMBOOT 模式 (只適用於標準的 Windows ISO檔)
|
||||||
|
r/Ctrl+r - Grub2 模式 (只適用於常見的一些 Linux 系統ISO檔)
|
||||||
|
i/Ctrl+i - 相容模式 (只用作調試目的,不能正式使用)
|
||||||
|
u/Ctrl+u - 載入 ISO efi 驅動(只用作調試目的,不能正式使用)
|
||||||
|
|
||||||
|
|
||||||
|
按 ESC 鍵返回 ......
|
@@ -56,6 +56,6 @@ menuentry '@VTMENU_HWINFO' --class=debug_hwinfo --class=F5tool {
|
|||||||
echo "BIOS ROM Size $bios_size"
|
echo "BIOS ROM Size $bios_size"
|
||||||
|
|
||||||
|
|
||||||
echo -e "\n\n\npress ENTER to exit ..."
|
echo -ven "\n\n\n" "VTMENU_ENTER_EXIT ..."
|
||||||
read vtInputKey
|
read vtInputKey
|
||||||
}
|
}
|
||||||
|
@@ -26,7 +26,7 @@ sfs: fshelp
|
|||||||
reiserfs: fshelp
|
reiserfs: fshelp
|
||||||
part_sunpc:
|
part_sunpc:
|
||||||
zstd:
|
zstd:
|
||||||
gfxmenu: video_colors trig gfxterm bitmap_scale font normal video bitmap
|
gfxmenu: video_colors trig bitmap_scale gfxterm font normal video bitmap
|
||||||
backtrace:
|
backtrace:
|
||||||
jfs:
|
jfs:
|
||||||
help: extcmd normal
|
help: extcmd normal
|
||||||
@@ -121,7 +121,7 @@ ehci: cs5536 usb boot
|
|||||||
crypto:
|
crypto:
|
||||||
part_bsd: part_msdos
|
part_bsd: part_msdos
|
||||||
cs5536:
|
cs5536:
|
||||||
ventoy: ext2 fshelp elf btrfs font crypto gcry_md5 exfat udf div extcmd datetime normal video gcry_sha1 mmap iso9660
|
ventoy: ext2 fshelp elf btrfs crypto font gcry_md5 exfat udf datetime div extcmd normal video gcry_sha1 mmap iso9660
|
||||||
gcry_sha512: crypto
|
gcry_sha512: crypto
|
||||||
password: crypto normal
|
password: crypto normal
|
||||||
fshelp:
|
fshelp:
|
||||||
|
@@ -26,7 +26,7 @@ sfs: fshelp
|
|||||||
reiserfs: fshelp
|
reiserfs: fshelp
|
||||||
part_sunpc:
|
part_sunpc:
|
||||||
zstd:
|
zstd:
|
||||||
gfxmenu: video_colors trig gfxterm bitmap_scale font normal video bitmap
|
gfxmenu: video_colors trig bitmap_scale gfxterm font normal video bitmap
|
||||||
backtrace:
|
backtrace:
|
||||||
jfs:
|
jfs:
|
||||||
help: extcmd normal
|
help: extcmd normal
|
||||||
@@ -124,7 +124,7 @@ crypto:
|
|||||||
part_bsd: part_msdos
|
part_bsd: part_msdos
|
||||||
cs5536: pci
|
cs5536: pci
|
||||||
biosdisk:
|
biosdisk:
|
||||||
ventoy: elf fshelp ext2 btrfs font crypto gcry_md5 exfat udf div extcmd datetime normal video gcry_sha1 iso9660 acpi
|
ventoy: ext2 fshelp elf btrfs crypto font gcry_md5 exfat udf div extcmd datetime normal video gcry_sha1 iso9660 acpi
|
||||||
lsapm:
|
lsapm:
|
||||||
gcry_sha512: crypto
|
gcry_sha512: crypto
|
||||||
password: crypto normal
|
password: crypto normal
|
||||||
|
BIN
INSTALL/grub/i386-pc/setkey.mod
Normal file
BIN
INSTALL/grub/i386-pc/setkey.mod
Normal file
Binary file not shown.
BIN
INSTALL/grub/i386-pc/video_fb.mod
Normal file
BIN
INSTALL/grub/i386-pc/video_fb.mod
Normal file
Binary file not shown.
71
INSTALL/grub/menu/ar_AR.json
Normal file
71
INSTALL/grub/menu/ar_AR.json
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
"VTMENU_LANGUAGE_NAME": "Arabic (العربية)",
|
||||||
|
|
||||||
|
"VTMENU_STR_HOTKEY_LIST": "L: لغه F1: مساعدة F2: تصفح F3: عرض قائمه F4: اقلا محلي F5: أدوات F6: عوده",
|
||||||
|
"VTMENU_STR_HOTKEY_TREE": "L: لغه F1: مساعدة F2: تصفح F3: عرض تصنيف F4: اقلاع محلي F5: أدوات F6: عوده",
|
||||||
|
"VTMENU_RETURN_PREVIOUS": "عودة إلى القائمة السابقة [Esc]",
|
||||||
|
"VTMENU_MENU_LANG": "اختيار اللغة في القائمة",
|
||||||
|
"VTMENU_LB_SBOOT_WINDOWS": "البحث والإقلاع على ويندوز",
|
||||||
|
"VTMENU_LB_SBOOT_G4D": "البحث والإقلاع على Grub4dos",
|
||||||
|
"VTMENU_LB_SBOOT_HDD1": "الإقلاع على القرص المحلي الأول",
|
||||||
|
"VTMENU_LB_SBOOT_HDD2": "الإقلاع على القرص المحلي الثاني",
|
||||||
|
"VTMENU_LB_SBOOT_HDD3": "الإقلاع على القرص المحلي الثالث",
|
||||||
|
"VTMENU_LB_SBOOT_X64EFI": "البحث والإقلاع على BOOTX64.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_IA32EFI": "البحث والإقلاع على BOOTIA32.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_AA64EFI": "البحث والإقلاع على BOOTAA64.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_XORBOOT": "البحث والإقلاع على xorboot",
|
||||||
|
"VTMENU_FILE_CHKSUM": "مجموعة التحقق من الملفات",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC": "حساب md5sum",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC": "حساب sha1sum",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC": "حساب sha256sum",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC": "حساب sha512sum",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC_CHK": "حساب وتحقق md5sum",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC_CHK": "حساب وتحقق sha1sum",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "حساب وتحقق sha256sum",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "حساب وتحقق sha512sum",
|
||||||
|
"VTMENU_POWER": "الطاقة",
|
||||||
|
"VTMENU_POWER_REBOOT": "إعادة التشغيل",
|
||||||
|
"VTMENU_POWER_HALT": "إيقاف",
|
||||||
|
"VTMENU_POWER_BOOT_EFIFW": "إعادة التشغيل إلى إعداد EFI",
|
||||||
|
"VTMENU_KEYBRD_LAYOUT": "تخطيطات لوحة المفاتيح",
|
||||||
|
"VTMENU_HWINFO": "معلومات الأجهزة الأساسية",
|
||||||
|
"VTMENU_RESOLUTION_CFG": "تكوين الدقة",
|
||||||
|
"VTMENU_SCREEN_MODE": "وضع عرض الشاشة",
|
||||||
|
"VTMENU_SCREEN_TEXT_MODE": "القيام بتحديد وضع النص",
|
||||||
|
"VTMENU_SCREEN_GUI_MODE": "القيام بتحديد وضع الرسومات",
|
||||||
|
"VTMENU_THEME_SELECT": "اختيار الموضوع",
|
||||||
|
"VTMENU_UTIL_SHOW_EFI_DRV": "عرض برامج تشغيل EFI",
|
||||||
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "إصلاح فشل تهيئة Windows BlinitializeLibrary",
|
||||||
|
"VTMENU_JSON_CHK_JSON": "التحقق من تكوين json للبرنامج الإضافي (ventoy.json)",
|
||||||
|
"VTMENU_JSON_CHK_CONTROL": "التحقق من تكوين برنامج الإضافي العام للتحكم",
|
||||||
|
"VTMENU_JSON_CHK_THEME": "التحقق من تكوين برنامج الإضافي الخاص بالموضوع",
|
||||||
|
"VTMENU_JSON_CHK_AUTOINS": "التحقق من تكوين برنامج الإضافي للتثبيت التلقائي",
|
||||||
|
"VTMENU_JSON_CHK_PERSIST": "التحقق من تكوين برنامج الإضافي المستمر",
|
||||||
|
"VTMENU_JSON_CHK_MENU_ALIAS": "التحقق من تكوين برنامج الإضافي الخاص بالقائمة المستعارة",
|
||||||
|
"VTMENU_JSON_CHK_MENU_TIP": "التحقق من تكوين برنامج الإضافي الخاص بتلميح القائمة",
|
||||||
|
"VTMENU_JSON_CHK_MENU_CLASS": "التحقق من تكوين برنامج الإضافي الخاص بفئة القائمة",
|
||||||
|
"VTMENU_JSON_CHK_INJECTION": "التحقق من تكوين برنامج الإضافي الخاص بالتدخل",
|
||||||
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "التحقق من تكوين برنامج الإضافي الخاص بالتثبيت التلقائي لـ memdisk",
|
||||||
|
"VTMENU_JSON_CHK_IMG_LIST": "التحقق من تكوين برنامج الإضافي الخاص بقائمة الصور",
|
||||||
|
"VTMENU_JSON_CHK_IMG_BLIST": "التحقق من تكوين برنامج الإضافي الخاص بقائمة سوداء للصور",
|
||||||
|
"VTMENU_JSON_CHK_CONF_REPLACE": "التحقق من تكوين برنامج الإضافي الخاص باستبدال ملف التكوين للإقلاع",
|
||||||
|
"VTMENU_JSON_CHK_DUD": "التحقق من تكوين برنامج الإضافي الخاص بـ dud",
|
||||||
|
"VTMENU_JSON_CHK_PASSWORD": "التحقق من تكوين برنامج الإضافي الخاص بكلمة المرور",
|
||||||
|
"VTMENU_NORMAL_MODE": "الإقلاع في الوضع العادي",
|
||||||
|
"VTMENU_WIMBOOT_MODE": "الإقلاع في وضع wimboot",
|
||||||
|
"VTMENU_GRUB2_MODE": "الإقلاع في وضع grub2",
|
||||||
|
"VTMENU_MEMDISK_MODE": "الإقلاع في وضع memdisk",
|
||||||
|
"VTMENU_RET_TO_LISTVIEW": "العودة إلى ListView",
|
||||||
|
"VTMENU_RET_TO_TREEVIEW": "العودة إلى TreeView",
|
||||||
|
"VTMENU_NO_AUTOINS_SCRIPT": "الإقلاع بدون قالب التثبيت التلقائي",
|
||||||
|
"VTMENU_AUTOINS_USE": "الإقلاع مع",
|
||||||
|
"VTMENU_NO_PERSIST": "الإقلاع بدون الاستمرارية",
|
||||||
|
"VTMENU_PERSIST_USE": "الإقلاع مع",
|
||||||
|
"VTMENU_BROWER_RETURN": "العودة",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "اضغط على مفتاح Enter للخروج",
|
||||||
|
"VTMENU_ENTER_REBOOT": "اضغط على مفتاح Enter لإعادة التشغيل",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "اضغط على مفتاح Enter للمتابعة",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "ফিরে",
|
"VTMENU_BROWER_RETURN": "ফিরে",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "প্রস্থান করার জন্য এন্টার কী টিপুন",
|
||||||
|
"VTMENU_ENTER_REBOOT": "রিবুট করতে এন্টার কী টিপুন",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "চালিয়ে যেতে এন্টার কী টিপুন",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Zurück",
|
"VTMENU_BROWER_RETURN": "Zurück",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "Drücken Sie zum Beenden die Eingabetaste",
|
||||||
|
"VTMENU_ENTER_REBOOT": "Drücken Sie die Eingabetaste, um neu zu starten",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "Drücken Sie die Eingabetaste, um fortzufahren",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Return",
|
"VTMENU_BROWER_RETURN": "Return",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "press Enter key to exit",
|
||||||
|
"VTMENU_ENTER_REBOOT": "press Enter key to reboot",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "press Enter key to continue",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"VTMENU_LANGUAGE_NAME": "French (Français)",
|
"VTMENU_LANGUAGE_NAME": "French (Français)",
|
||||||
|
|
||||||
"VTMENU_STR_HOTKEY_LIST": "L:Langue F1:Aider F2:Parcourir F3:AffichageListe F4:Localboot F5:Outils F6:Menu étendu",
|
"VTMENU_STR_HOTKEY_LIST": "L:Langue F1:Aide F2:Parcourir F3:Affichage liste F4:Démarrage local F5:Outils F6:Menu étendu",
|
||||||
"VTMENU_STR_HOTKEY_TREE": "L:Langue F1:Aider F2:Parcourir F3:AffichageListe F4:Localboot F5:Outils F6:Menu étendu",
|
"VTMENU_STR_HOTKEY_TREE": "L:Langue F1:Aide F2:Parcourir F3:Affichage arborescence F4:Démarrage local F5:Outils F6:Menu étendu",
|
||||||
"VTMENU_RETURN_PREVIOUS": "Retour au menu précédent [Esc]",
|
"VTMENU_RETURN_PREVIOUS": "Retour au menu précédent [Echap]",
|
||||||
|
|
||||||
"VTMENU_MENU_LANG": "Sélection de la langue des menus",
|
"VTMENU_MENU_LANG": "Sélection de la langue des menus",
|
||||||
|
|
||||||
"VTMENU_LB_SBOOT_WINDOWS": "Rechercher et démarrer Windows",
|
"VTMENU_LB_SBOOT_WINDOWS": "Rechercher et démarrer Windows",
|
||||||
"VTMENU_LB_SBOOT_G4D": "Rechercher et démarrer Grub4dos",
|
"VTMENU_LB_SBOOT_G4D": "Rechercher et démarrer GRUB4DOS",
|
||||||
"VTMENU_LB_SBOOT_HDD1": "Démarrez le 1er disque local",
|
"VTMENU_LB_SBOOT_HDD1": "Démarrer depuis le 1er disque local",
|
||||||
"VTMENU_LB_SBOOT_HDD2": "Démarrez le 2ème disque local",
|
"VTMENU_LB_SBOOT_HDD2": "Démarrer depuis le 2e disque local",
|
||||||
"VTMENU_LB_SBOOT_HDD3": "Démarrez le 3ème disque local",
|
"VTMENU_LB_SBOOT_HDD3": "Démarrer depuis le 3e disque local",
|
||||||
"VTMENU_LB_SBOOT_X64EFI": "Rechercher et démarrer BOOTX64.EFI",
|
"VTMENU_LB_SBOOT_X64EFI": "Rechercher et démarrer BOOTX64.EFI",
|
||||||
"VTMENU_LB_SBOOT_IA32EFI": "Rechercher et démarrer BOOTIA32.EFI",
|
"VTMENU_LB_SBOOT_IA32EFI": "Rechercher et démarrer BOOTIA32.EFI",
|
||||||
"VTMENU_LB_SBOOT_AA64EFI": "Rechercher et démarrer BOOTAA64.EFI",
|
"VTMENU_LB_SBOOT_AA64EFI": "Rechercher et démarrer BOOTAA64.EFI",
|
||||||
@@ -27,55 +27,59 @@
|
|||||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculer et vérifier SHA256",
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculer et vérifier SHA256",
|
||||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculer et vérifier SHA512",
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculer et vérifier SHA512",
|
||||||
|
|
||||||
"VTMENU_POWER": "Source d'alimentation",
|
"VTMENU_POWER": "Extinction",
|
||||||
"VTMENU_POWER_REBOOT": "Redémarrer",
|
"VTMENU_POWER_REBOOT": "Redémarrer",
|
||||||
"VTMENU_POWER_HALT": "Éteindre",
|
"VTMENU_POWER_HALT": "Éteindre",
|
||||||
"VTMENU_POWER_BOOT_EFIFW": "Redémarrez avec la configuration EFI",
|
"VTMENU_POWER_BOOT_EFIFW": "Redémarrer et accéder au menu EFI",
|
||||||
|
|
||||||
"VTMENU_KEYBRD_LAYOUT": "Dispositions de clavier",
|
"VTMENU_KEYBRD_LAYOUT": "Dispositions de clavier",
|
||||||
"VTMENU_HWINFO": "Informations sur le matériel",
|
"VTMENU_HWINFO": "Informations sur le matériel",
|
||||||
|
|
||||||
"VTMENU_RESOLUTION_CFG": "Configuration de la résolution",
|
"VTMENU_RESOLUTION_CFG": "Configuration de la résolution",
|
||||||
"VTMENU_SCREEN_MODE": "Mode d'affichage",
|
"VTMENU_SCREEN_MODE": "Mode d’affichage",
|
||||||
"VTMENU_SCREEN_TEXT_MODE": "Mode texte",
|
"VTMENU_SCREEN_TEXT_MODE": "Mode texte",
|
||||||
"VTMENU_SCREEN_GUI_MODE": "Mode graphique",
|
"VTMENU_SCREEN_GUI_MODE": "Mode graphique",
|
||||||
|
|
||||||
"VTMENU_THEME_SELECT": "Sélection de thème",
|
"VTMENU_THEME_SELECT": "Sélection du thème",
|
||||||
|
|
||||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
"VTMENU_UTIL_SHOW_EFI_DRV": "Afficher les pilotes EFI",
|
||||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Contourner l’échec de Windows BlinitializeLibrary",
|
||||||
|
|
||||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
"VTMENU_JSON_CHK_JSON": "Afficher le fichiers de configuration (ventoy.json)",
|
||||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
"VTMENU_JSON_CHK_CONTROL": "Afficher la configuration du plugin de contrôle global",
|
||||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
"VTMENU_JSON_CHK_THEME": "Afficher la configuration du plugin de thème",
|
||||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
"VTMENU_JSON_CHK_AUTOINS": "Afficher la configuration du plugin d’installation automatique",
|
||||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
"VTMENU_JSON_CHK_PERSIST": "Afficher la configuration du plugin de persistance",
|
||||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
"VTMENU_JSON_CHK_MENU_ALIAS": "Afficher la configuration du plugin des alias du menu",
|
||||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
"VTMENU_JSON_CHK_MENU_TIP": "Afficher la configuration du plugin des astuces du menu",
|
||||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
"VTMENU_JSON_CHK_MENU_CLASS": "Afficher la configuration du plugin des classes du menu",
|
||||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
"VTMENU_JSON_CHK_INJECTION": "Afficher la configuration du plugin d’injection",
|
||||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Afficher la configuration du plugin memdisk automatique",
|
||||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
"VTMENU_JSON_CHK_IMG_LIST": "Afficher la configuration du plugin de liste des images",
|
||||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
"VTMENU_JSON_CHK_IMG_BLIST": "Afficher la configuration du plugin de liste noire des images",
|
||||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
"VTMENU_JSON_CHK_CONF_REPLACE": "Afficher la configuration du plugin de substitution des fichiers de démarrage",
|
||||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
"VTMENU_JSON_CHK_DUD": "Afficher la configuration du plugin de disques de mise à jour des pilotes",
|
||||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
"VTMENU_JSON_CHK_PASSWORD": "Afficher la configuration du plugin de mots de passe",
|
||||||
|
|
||||||
"VTMENU_NORMAL_MODE": "Démarrez en mode normal",
|
"VTMENU_NORMAL_MODE": "Démarrer en mode normal",
|
||||||
"VTMENU_WIMBOOT_MODE": "Démarrez en mode wimboot",
|
"VTMENU_WIMBOOT_MODE": "Démarrer en mode WimBoot",
|
||||||
"VTMENU_GRUB2_MODE": "Démarrez en mode grub2",
|
"VTMENU_GRUB2_MODE": "Démarrer en mode GRUB 2",
|
||||||
"VTMENU_MEMDISK_MODE": "Démarrez en mode memdisk",
|
"VTMENU_MEMDISK_MODE": "Démarrer en mode Memdisk",
|
||||||
|
|
||||||
"VTMENU_RET_TO_LISTVIEW": "Revenir à ListView",
|
"VTMENU_RET_TO_LISTVIEW": "Revenir à l’affichage en liste",
|
||||||
"VTMENU_RET_TO_TREEVIEW": "Revenir à TreeView",
|
"VTMENU_RET_TO_TREEVIEW": "Revenir à l’affichage en arborescence",
|
||||||
|
|
||||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
"VTMENU_NO_AUTOINS_SCRIPT": "Démarrer en ignorant le modèle d’auto-installation",
|
||||||
"VTMENU_AUTOINS_USE": "Boot with",
|
"VTMENU_AUTOINS_USE": "Démarrer en chargeant le modèle d’auto-installation",
|
||||||
|
|
||||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
"VTMENU_NO_PERSIST": "Démarrer sans persistance",
|
||||||
"VTMENU_PERSIST_USE": "Boot with",
|
"VTMENU_PERSIST_USE": "Démarrer avec la persistance",
|
||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Revenir",
|
"VTMENU_BROWER_RETURN": "Retour",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "appuyez sur la touche Entrée pour quitter",
|
||||||
|
"VTMENU_ENTER_REBOOT": "appuyez sur la touche Entrée pour redémarrer",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "appuyez sur la touche Entrée pour continuer",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "लौटें",
|
"VTMENU_BROWER_RETURN": "लौटें",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "बाहर निकलने के लिए एंटर कुंजी दबाएं",
|
||||||
|
"VTMENU_ENTER_REBOOT": "रिबूट करने के लिए एंटर कुंजी दबाएं",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "जारी रखने के लिए एंटर कुंजी दबाएं",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Return",
|
"VTMENU_BROWER_RETURN": "Return",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "pritisnite tipku Enter za izlaz",
|
||||||
|
"VTMENU_ENTER_REBOOT": "pritisnite tipku Enter za ponovno pokretanje",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "pritisnite tipku Enter za nastavak",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
85
INSTALL/grub/menu/hu_HU.json
Normal file
85
INSTALL/grub/menu/hu_HU.json
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"VTMENU_LANGUAGE_NAME": "Hungarian (Magyar)",
|
||||||
|
|
||||||
|
"VTMENU_STR_HOTKEY_LIST": "L:Nyelv F1:Súgó F2:Tallóz F3:Listanézet F4:Helyi indítás F5:Eszközök F6:Bővített menü",
|
||||||
|
"VTMENU_STR_HOTKEY_TREE": "L:Nyelv F1:Súgó F2:Tallóz F3:Fanézet F4:Helyi indítás F5:Eszközök F6:Bővített menü",
|
||||||
|
"VTMENU_RETURN_PREVIOUS": "Vissza az előző menübe [Esc]",
|
||||||
|
|
||||||
|
"VTMENU_MENU_LANG": "Menü nyelv kiválasztás",
|
||||||
|
|
||||||
|
"VTMENU_LB_SBOOT_WINDOWS": "Keresés és indítás - Windows",
|
||||||
|
"VTMENU_LB_SBOOT_G4D": "Keresés és indítás - Grub4dos",
|
||||||
|
"VTMENU_LB_SBOOT_HDD1": "Indítás az 1. helyi lemezről",
|
||||||
|
"VTMENU_LB_SBOOT_HDD2": "Indítás az 2. helyi lemezről",
|
||||||
|
"VTMENU_LB_SBOOT_HDD3": "Indítás az 3. helyi lemezről",
|
||||||
|
"VTMENU_LB_SBOOT_X64EFI": "Keresés és indítás - BOOTX64.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_IA32EFI": "Keresés és indítás - BOOTIA32.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_AA64EFI": "Keresés és indítás - BOOTAA64.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_XORBOOT": "Keresés és indítás - xorboot",
|
||||||
|
|
||||||
|
"VTMENU_FILE_CHKSUM": "Fájl ell.összeg",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC": "Számítás - md5sum",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC": "Számítás - sha1sum",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC": "Számítás - sha256sum",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC": "Számítás - sha512sum",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC_CHK": "Számítás és ellenőrzés - md5sum",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Számítás és ellenőrzés - sha1sum",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Számítás és ellenőrzés - sha256sum",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Számítás és ellenőrzés - sha512sum",
|
||||||
|
|
||||||
|
"VTMENU_POWER": "Energia",
|
||||||
|
"VTMENU_POWER_REBOOT": "Újraindítás",
|
||||||
|
"VTMENU_POWER_HALT": "Leállítás",
|
||||||
|
"VTMENU_POWER_BOOT_EFIFW": "Újraindítás - EFI setup",
|
||||||
|
|
||||||
|
"VTMENU_KEYBRD_LAYOUT": "Billentyű kiosztások",
|
||||||
|
"VTMENU_HWINFO": "Hardver információ",
|
||||||
|
|
||||||
|
"VTMENU_RESOLUTION_CFG": "Felbontás konfigurációja",
|
||||||
|
"VTMENU_SCREEN_MODE": "Képernyő megjelenítési mód",
|
||||||
|
"VTMENU_SCREEN_TEXT_MODE": "Kénysz. szöveges mód",
|
||||||
|
"VTMENU_SCREEN_GUI_MODE": "Kénysz. grafikus mód",
|
||||||
|
|
||||||
|
"VTMENU_THEME_SELECT": "Téma kiválasztása",
|
||||||
|
|
||||||
|
"VTMENU_UTIL_SHOW_EFI_DRV": "EFI driverek megjelenítése",
|
||||||
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "A Windows BlinitializeLibrary hibájának javítása",
|
||||||
|
|
||||||
|
"VTMENU_JSON_CHK_JSON": "Ellenőrizze a plugin json konfigurációt (ventoy.json)",
|
||||||
|
"VTMENU_JSON_CHK_CONTROL": "Ellenőrizze a globális vezérlő plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_THEME": "Ellenőrizze a téma plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_AUTOINS": "Ellenőrizze az auto. telepítő plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_PERSIST": "A persistence plugin konfigurációjának ellenőrzése",
|
||||||
|
"VTMENU_JSON_CHK_MENU_ALIAS": "Ellenőrizze a menü alias plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_MENU_TIP": "Ellenőrizze a menü tipp plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_MENU_CLASS": "Ellenőrizze a menü osztály plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_INJECTION": "Injekciós plugin konfiguráció ellenőrzése",
|
||||||
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Auto. memdisk plugin konfiguráció ellenőrzése",
|
||||||
|
"VTMENU_JSON_CHK_IMG_LIST": "Ellenőrizze a képlista plugin beállításait",
|
||||||
|
"VTMENU_JSON_CHK_IMG_BLIST": "Ellenőrizze a kép feketelista plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf cserélje ki a plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_DUD": "Ellenőrizze a dud plugin konfigurációt",
|
||||||
|
"VTMENU_JSON_CHK_PASSWORD": "Ellenőrizze a jelszó plugin konfigurációját",
|
||||||
|
|
||||||
|
"VTMENU_NORMAL_MODE": "Indítás normál módban",
|
||||||
|
"VTMENU_WIMBOOT_MODE": "Indítás wimboot módban",
|
||||||
|
"VTMENU_GRUB2_MODE": "Indítás grub2 módban",
|
||||||
|
"VTMENU_MEMDISK_MODE": "Indítás memdisk módban",
|
||||||
|
|
||||||
|
"VTMENU_RET_TO_LISTVIEW": "Vissza a Listanézethez",
|
||||||
|
"VTMENU_RET_TO_TREEVIEW": "Vissza a Fanézethez",
|
||||||
|
|
||||||
|
"VTMENU_NO_AUTOINS_SCRIPT": "Indítás auto. telepítési sablon nélkül",
|
||||||
|
"VTMENU_AUTOINS_USE": "Indítás ezzel",
|
||||||
|
|
||||||
|
"VTMENU_NO_PERSIST": "Indítás perzisztencia nélkül",
|
||||||
|
"VTMENU_PERSIST_USE": "Indítás ezzel",
|
||||||
|
|
||||||
|
"VTMENU_BROWER_RETURN": "Vissza",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "nyomja meg az Enter billentyűt a kilépéshez",
|
||||||
|
"VTMENU_ENTER_REBOOT": "nyomja meg az Enter billentyűt az újraindításhoz",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "a folytatáshoz nyomja meg az Enter billentyűt",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
@@ -1,81 +1,85 @@
|
|||||||
{
|
{
|
||||||
"VTMENU_LANGUAGE_NAME": "Indonesian (Bahasa Indonesia)",
|
"VTMENU_LANGUAGE_NAME": "Indonesian (Bahasa Indonesia)",
|
||||||
|
|
||||||
"VTMENU_STR_HOTKEY_LIST": "L:Bahasa F1:Help F2:Browse F3:ListView F4:Localboot F5:Tools F6:ExMenu",
|
"VTMENU_STR_HOTKEY_LIST": "L:Bahasa F1:Bantuan F2:Jelajah F3:ListView F4:boot lokal F5:Alat Utilitas F6:Menu Eksternal",
|
||||||
"VTMENU_STR_HOTKEY_TREE": "L:Bahasa F1:Help F2:Browse F3:TreeView F4:Localboot F5:Tools F6:ExMenu",
|
"VTMENU_STR_HOTKEY_TREE": "L:Bahasa F1:Bantuan F2:Jelajah F3:ListView F4:boot lokal F5:Alat Utilitas F6:Menu Eksternal",
|
||||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
"VTMENU_RETURN_PREVIOUS": "Kembali ke menu sebelumnya [Esc]",
|
||||||
|
|
||||||
"VTMENU_MENU_LANG": "Menu Language Select",
|
"VTMENU_MENU_LANG": "Menu Pilihan Bahasa",
|
||||||
|
|
||||||
"VTMENU_LB_SBOOT_WINDOWS": "Search and boot Windows",
|
"VTMENU_LB_SBOOT_WINDOWS": "Mencari dan jalankan boot ke Windows",
|
||||||
"VTMENU_LB_SBOOT_G4D": "Search and boot Grub4dos",
|
"VTMENU_LB_SBOOT_G4D": "Mencari dan jalankan boot ke Grub4dos",
|
||||||
"VTMENU_LB_SBOOT_HDD1": "Boot the 1st local disk",
|
"VTMENU_LB_SBOOT_HDD1": "Jalankan boot ke disk lokal 1",
|
||||||
"VTMENU_LB_SBOOT_HDD2": "Boot the 2nd local disk",
|
"VTMENU_LB_SBOOT_HDD2": "Jalankan boot ke disk lokal 2",
|
||||||
"VTMENU_LB_SBOOT_HDD3": "Boot the 3rd local disk",
|
"VTMENU_LB_SBOOT_HDD3": "Jalankan boot ke disk lokal 3",
|
||||||
"VTMENU_LB_SBOOT_X64EFI": "Search and boot BOOTX64.EFI",
|
"VTMENU_LB_SBOOT_X64EFI": "Jalankan boot ke disk lokal nomor 1 BOOTX64.EFI",
|
||||||
"VTMENU_LB_SBOOT_IA32EFI": "Search and boot BOOTIA32.EFI",
|
"VTMENU_LB_SBOOT_IA32EFI": "Mencari dan jalankan boot ke BOOTIA32.EFI",
|
||||||
"VTMENU_LB_SBOOT_AA64EFI": "Search and boot BOOTAA64.EFI",
|
"VTMENU_LB_SBOOT_AA64EFI": "Mencari dan jalankan boot ke BOOTAA64.EFI",
|
||||||
"VTMENU_LB_SBOOT_XORBOOT": "Search and boot xorboot",
|
"VTMENU_LB_SBOOT_XORBOOT": "Mencari dan jalankan boot ke xorboot",
|
||||||
|
|
||||||
"VTMENU_FILE_CHKSUM": "File checksum",
|
"VTMENU_FILE_CHKSUM": "Berkas checksum",
|
||||||
"VTMENU_CHKSUM_MD5_CALC": "Calculate md5sum",
|
"VTMENU_CHKSUM_MD5_CALC": "Menghitung md5sum",
|
||||||
"VTMENU_CHKSUM_SHA1_CALC": "Calculate sha1sum",
|
"VTMENU_CHKSUM_SHA1_CALC": "Menghitung sha1sum",
|
||||||
"VTMENU_CHKSUM_SHA256_CALC": "Calculate sha256sum",
|
"VTMENU_CHKSUM_SHA256_CALC": "Menghitung sha256sum",
|
||||||
"VTMENU_CHKSUM_SHA512_CALC": "Calculate sha512sum",
|
"VTMENU_CHKSUM_SHA512_CALC": "Menghitung sha512sum",
|
||||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Calculate and check md5sum",
|
"VTMENU_CHKSUM_MD5_CALC_CHK": "Menghitung dan memeriksa md5sum",
|
||||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Calculate and check sha1sum",
|
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Menghitung dan memeriksa sha1sum",
|
||||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculate and check sha256sum",
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Menghitung dan memeriksa sha256sum",
|
||||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculate and check sha512sum",
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Menghitung dan memeriksa sha512sum",
|
||||||
|
|
||||||
"VTMENU_POWER": "Power",
|
"VTMENU_POWER": "Daya",
|
||||||
"VTMENU_POWER_REBOOT": "Reboot",
|
"VTMENU_POWER_REBOOT": "Memulai ulang",
|
||||||
"VTMENU_POWER_HALT": "Halt",
|
"VTMENU_POWER_HALT": "Mematikan",
|
||||||
"VTMENU_POWER_BOOT_EFIFW": "Reboot to EFI setup",
|
"VTMENU_POWER_BOOT_EFIFW": "Memulai ulang menuju EFI setup",
|
||||||
|
|
||||||
"VTMENU_KEYBRD_LAYOUT": "Keyboard Layouts",
|
"VTMENU_KEYBRD_LAYOUT": "Tata letak Keyboard",
|
||||||
"VTMENU_HWINFO": "Hardware Information",
|
"VTMENU_HWINFO": "Informasi Perangkat Keras",
|
||||||
|
|
||||||
"VTMENU_RESOLUTION_CFG": "Resolution Configuration",
|
"VTMENU_RESOLUTION_CFG": "Setelan Resolusi",
|
||||||
"VTMENU_SCREEN_MODE": "Screen Display Mode",
|
"VTMENU_SCREEN_MODE": "Mode Tampilan Layar",
|
||||||
"VTMENU_SCREEN_TEXT_MODE": "Force Text Mode",
|
"VTMENU_SCREEN_TEXT_MODE": "Paksa ke Mode Teks",
|
||||||
"VTMENU_SCREEN_GUI_MODE": "Force Graphics Mode",
|
"VTMENU_SCREEN_GUI_MODE": "Paksa ke Mode Grafis",
|
||||||
|
|
||||||
"VTMENU_THEME_SELECT": "Theme Select",
|
"VTMENU_THEME_SELECT": "Pilih Tema",
|
||||||
|
|
||||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
"VTMENU_UTIL_SHOW_EFI_DRV": "Tampilkan Driver EFI",
|
||||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Memperbaiki Kegagalan Windows BlinitializeLibrary",
|
||||||
|
|
||||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
"VTMENU_JSON_CHK_JSON": "Periksa setelan plugin (ventoy.json)",
|
||||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
"VTMENU_JSON_CHK_CONTROL": "Periksa setelan plugin global control",
|
||||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
"VTMENU_JSON_CHK_THEME": "Periksa setelan plugin theme",
|
||||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
"VTMENU_JSON_CHK_AUTOINS": "Periksa setelan plugin auto install",
|
||||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
"VTMENU_JSON_CHK_PERSIST": "Periksa setelan plugin persistence",
|
||||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
"VTMENU_JSON_CHK_MENU_ALIAS": "Periksa setelan plugin menu alias",
|
||||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
"VTMENU_JSON_CHK_MENU_TIP": "Periksa setelan plugin tip",
|
||||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
"VTMENU_JSON_CHK_MENU_CLASS": "Periksa setelan class plugin menu",
|
||||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
"VTMENU_JSON_CHK_INJECTION": "Periksa setelan plugin injection",
|
||||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Periksa setelan plugin auto memdisk",
|
||||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
"VTMENU_JSON_CHK_IMG_LIST": "Periksa setelan plugin image list",
|
||||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
"VTMENU_JSON_CHK_IMG_BLIST": "Periksa setelant plugin image blacklis",
|
||||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
"VTMENU_JSON_CHK_CONF_REPLACE": "Periksa setelan plugin boot conf replace",
|
||||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
"VTMENU_JSON_CHK_DUD": "Periksa setelan plugin dud",
|
||||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
"VTMENU_JSON_CHK_PASSWORD": "Periksa setelan plugin password",
|
||||||
|
|
||||||
"VTMENU_NORMAL_MODE": "Boot in normal mode",
|
"VTMENU_NORMAL_MODE": "Jalankan boot di mode normal",
|
||||||
"VTMENU_WIMBOOT_MODE": "Boot in wimboot mode",
|
"VTMENU_WIMBOOT_MODE": "Jalankan boot di mode wimboot",
|
||||||
"VTMENU_GRUB2_MODE": "Boot in grub2 mode",
|
"VTMENU_GRUB2_MODE": "Jalankan boot di mode grub2",
|
||||||
"VTMENU_MEMDISK_MODE": "Boot in memdisk mode",
|
"VTMENU_MEMDISK_MODE": "Jalankan boot di mode memdisk",
|
||||||
|
|
||||||
"VTMENU_RET_TO_LISTVIEW": "Return to ListView",
|
"VTMENU_RET_TO_LISTVIEW": "Kembali ke ListView",
|
||||||
"VTMENU_RET_TO_TREEVIEW": "Return to TreeView",
|
"VTMENU_RET_TO_TREEVIEW": "Kembali ke TreeView",
|
||||||
|
|
||||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
"VTMENU_NO_AUTOINS_SCRIPT": "Jalankan boot tanpa templat instalasi otomatis",
|
||||||
"VTMENU_AUTOINS_USE": "Boot with",
|
"VTMENU_AUTOINS_USE": "Jalankan boot dengan",
|
||||||
|
|
||||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
"VTMENU_NO_PERSIST": "Jalankan boot tanpa persistence",
|
||||||
"VTMENU_PERSIST_USE": "Boot with",
|
"VTMENU_PERSIST_USE": "Jalankan boot",
|
||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Return",
|
"VTMENU_BROWER_RETURN": "Kembali",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "tekan tombol Enter untuk keluar",
|
||||||
|
"VTMENU_ENTER_REBOOT": "tekan tombol Enter untuk reboot",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "tekan tombol Enter untuk melanjutkan",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "戻る",
|
"VTMENU_BROWER_RETURN": "戻る",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "Enterキーを押して終了します",
|
||||||
|
"VTMENU_ENTER_REBOOT": "Enterキーを押して再起動します",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "Enterキーを押して続行します",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
85
INSTALL/grub/menu/ka_GE.json
Normal file
85
INSTALL/grub/menu/ka_GE.json
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"VTMENU_LANGUAGE_NAME": "Georgian (ქართული)",
|
||||||
|
|
||||||
|
"VTMENU_STR_HOTKEY_LIST": "L:ენა F1:დახმარება F2:დათვალიერება F3:სიის ხედი F4:ლოკალური ჩატვირთვა F5:ხელსაწყოები F6:გასვლა",
|
||||||
|
"VTMENU_STR_HOTKEY_TREE": "L:ენა F1:დახმარება F2:დათვალიერება F3:ხის ხედი F4:ლოკალური ჩატვირთვა F5:ხელსაწყოები F6:გასვლა",
|
||||||
|
"VTMENU_RETURN_PREVIOUS": "წინა მენიუში დაბრუნება [Esc]",
|
||||||
|
|
||||||
|
"VTMENU_MENU_LANG": "მენიუს ენის არჩევა",
|
||||||
|
|
||||||
|
"VTMENU_LB_SBOOT_WINDOWS": "Windows-ის მოძებნა და ჩატვირთვა",
|
||||||
|
"VTMENU_LB_SBOOT_G4D": "Grub4dos-ის მოძებნა და ჩატვირთვა",
|
||||||
|
"VTMENU_LB_SBOOT_HDD1": "1-ლი ლოკალური მყარი დისკიდან ჩატვირთვა",
|
||||||
|
"VTMENU_LB_SBOOT_HDD2": "მე-2 ლოკალური მყარი დისკიდან ჩატვირთვა",
|
||||||
|
"VTMENU_LB_SBOOT_HDD3": "მე-3 ლოკალური მყარი დისკიდან ჩატვირთვა",
|
||||||
|
"VTMENU_LB_SBOOT_X64EFI": "BOOTX64.EFI-ის მოძებნა და ჩატვირთვა",
|
||||||
|
"VTMENU_LB_SBOOT_IA32EFI": "BOOTIA32.EFI-ის მოძებნა და ჩატვირთვა",
|
||||||
|
"VTMENU_LB_SBOOT_AA64EFI": "BOOTAA64.EFI-ის მოძებნა და ჩატვირთვა",
|
||||||
|
"VTMENU_LB_SBOOT_XORBOOT": "xorboot-ის მოძებნა და ჩატვირთვა",
|
||||||
|
|
||||||
|
"VTMENU_FILE_CHKSUM": "ფაილის საკონტროლო ჯამი",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC": "md5sum გამოთვლა",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC": "sha1sum გამოთვლა",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC": "sha256sum გამოთვლა",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC": "sha512sum გამოთვლა",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC_CHK": "md5sum გამოთვლა და შემოწმება",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC_CHK": "sha1sum გამოთვლა და შემოწმება",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "sha256sum გამოთვლა და შემოწმება",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "sha512sum გამოთვლა და შემოწმება",
|
||||||
|
|
||||||
|
"VTMENU_POWER": "კომპიუტერის გამორთვა",
|
||||||
|
"VTMENU_POWER_REBOOT": "კომპიუტერის გადატვირთვა",
|
||||||
|
"VTMENU_POWER_HALT": "კომპიუტერის გაჩერება",
|
||||||
|
"VTMENU_POWER_BOOT_EFIFW": "გადატვირთვა EFI კონფიგურაციის რეჟიმში",
|
||||||
|
|
||||||
|
"VTMENU_KEYBRD_LAYOUT": "კლავიატურის განლაგებები",
|
||||||
|
"VTMENU_HWINFO": "ინფორმაცია მოწყობილობების შესახებ",
|
||||||
|
|
||||||
|
"VTMENU_RESOLUTION_CFG": "გარჩევადობის კონფიგურაცია",
|
||||||
|
"VTMENU_SCREEN_MODE": "ჩვენების რეჟიმი",
|
||||||
|
"VTMENU_SCREEN_TEXT_MODE": "ჩვენების ტექსტური რეჟიმი",
|
||||||
|
"VTMENU_SCREEN_GUI_MODE": "ჩვენების გრაფიკული რეჟიმი",
|
||||||
|
|
||||||
|
"VTMENU_THEME_SELECT": "თემის არჩევა",
|
||||||
|
|
||||||
|
"VTMENU_UTIL_SHOW_EFI_DRV": "EFI დრაივერების ჩვენება",
|
||||||
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Windows BlinitializeLibrary ხარვეზის გასწორება",
|
||||||
|
|
||||||
|
"VTMENU_JSON_CHK_JSON": "მოდულების json კონფიგურაციის შემოწმება (ventoy.json)",
|
||||||
|
"VTMENU_JSON_CHK_CONTROL": "global control მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_THEME": "theme მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_AUTOINS": "auto install მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_PERSIST": "persistence მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_MENU_ALIAS": "menu alias მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_MENU_TIP": "menu tip მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_MENU_CLASS": "menu class მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_INJECTION": "injection მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "auto memdisk მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_IMG_LIST": "image list მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_IMG_BLIST": "image blacklist მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_CONF_REPLACE": "boot conf replace მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_DUD": "dud მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
"VTMENU_JSON_CHK_PASSWORD": "password მოდულის კონფიგურაციის შემოწმება",
|
||||||
|
|
||||||
|
"VTMENU_NORMAL_MODE": "ჩატვირთვა normal რეჟიმში",
|
||||||
|
"VTMENU_WIMBOOT_MODE": "ჩატვირთვა wimboot რეჟიმში",
|
||||||
|
"VTMENU_GRUB2_MODE": "ჩატვირთვა grub2 რეჟიმში",
|
||||||
|
"VTMENU_MEMDISK_MODE": "ჩატვირთვა memdisk რეჟიმში",
|
||||||
|
|
||||||
|
"VTMENU_RET_TO_LISTVIEW": "სიის ხედის დაბრუნება",
|
||||||
|
"VTMENU_RET_TO_TREEVIEW": "ხის ხედის დაბრუნება",
|
||||||
|
|
||||||
|
"VTMENU_NO_AUTOINS_SCRIPT": "ჩატვირთვა ავტომატური ინსტალაციის სკრიპტის გარეშე",
|
||||||
|
"VTMENU_AUTOINS_USE": "ჩატვირთვა ავტომატური ინსტალაციის რეჟიმში",
|
||||||
|
|
||||||
|
"VTMENU_NO_PERSIST": "ჩატვირთვა ცვლილებების შენახვის რეჟიმის გარეშე",
|
||||||
|
"VTMENU_PERSIST_USE": "ჩატვირთვა ცვლილებების შენახვის რეჟიმში",
|
||||||
|
|
||||||
|
"VTMENU_BROWER_RETURN": "დაბრუნება",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "გასასვლელად დააჭირეთ Enter ღილაკს",
|
||||||
|
"VTMENU_ENTER_REBOOT": "დააჭირეთ Enter ღილაკს გადატვირთვისთვის",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "გასაგრძელებლად დააჭირეთ Enter ღილაკს",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "돌아가기",
|
"VTMENU_BROWER_RETURN": "돌아가기",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "Enter 키를 눌러 종료",
|
||||||
|
"VTMENU_ENTER_REBOOT": "Enter 키를 눌러 재부팅",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "계속하려면 Enter 키를 누르십시오",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
85
INSTALL/grub/menu/pl_PL.json
Normal file
85
INSTALL/grub/menu/pl_PL.json
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"VTMENU_LANGUAGE_NAME": "Polish (Poland)",
|
||||||
|
|
||||||
|
"VTMENU_STR_HOTKEY_LIST": "L:Język F1:Pomoc F2:Przeglądaj F3:ListView F4:Localboot F5:Narzędzia F6:ExMenu",
|
||||||
|
"VTMENU_STR_HOTKEY_TREE": "L:Język F1:Pomoc F2:Przeglądaj F3:Widok drzewa F4:Localboot F5:Narzędzia F6:ExMenu",
|
||||||
|
"VTMENU_RETURN_PREVIOUS": "Powrót do poprzedniego menu [Esc]",
|
||||||
|
|
||||||
|
"VTMENU_MENU_LANG": "Wybór języka menu",
|
||||||
|
|
||||||
|
"VTMENU_LB_SBOOT_WINDOWS": "Wyszukaj i uruchom system Windows",
|
||||||
|
"VTMENU_LB_SBOOT_G4D": "Wyszukaj i uruchom Grub4dos",
|
||||||
|
"VTMENU_LB_SBOOT_HDD1": "Uruchom pierwszy dysk lokalny",
|
||||||
|
"VTMENU_LB_SBOOT_HDD2": "Uruchom drugi dysk lokalny",
|
||||||
|
"VTMENU_LB_SBOOT_HDD3": "Uruchom trzeci dysk lokalny",
|
||||||
|
"VTMENU_LB_SBOOT_X64EFI": "Wyszukaj i uruchom BOOTX64.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_IA32EFI": "Wyszukaj i uruchom BOOTIA32.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_AA64EFI": "Wyszukaj i uruchom BOOTAA64.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_XORBOOT": "Wyszukaj i uruchom xorboot",
|
||||||
|
|
||||||
|
"VTMENU_FILE_CHKSUM": "Suma kontrolna pliku",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC": "Oblicz sumę md5",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC": "Oblicz sumę sha1",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC": "Oblicz sumę sha256",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC": "Oblicz sumę sha512",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC_CHK": "Oblicz i sprawdź sumę md5",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Oblicz i sprawdź sumę sha1",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Oblicz i sprawdź sumę sha256",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Oblicz i sprawdź sumę sha512",
|
||||||
|
|
||||||
|
"VTMENU_POWER": "Moc",
|
||||||
|
"VTMENU_POWER_REBOOT": "Uruchom ponownie",
|
||||||
|
"VTMENU_POWER_HALT": "Zatrzymanie",
|
||||||
|
"VTMENU_POWER_BOOT_EFIFW": "Uruchom ponownie do konfiguracji EFI",
|
||||||
|
|
||||||
|
"VTMENU_KEYBRD_LAYOUT": "Układy klawiatury",
|
||||||
|
"VTMENU_HWINFO": "Informacje o sprzęcie",
|
||||||
|
|
||||||
|
"VTMENU_RESOLUTION_CFG": "Konfiguracja rozdzielczości",
|
||||||
|
"VTMENU_SCREEN_MODE": "Tryb wyświetlania ekranu",
|
||||||
|
"VTMENU_SCREEN_TEXT_MODE": "Wymuś tryb tekstowy",
|
||||||
|
"VTMENU_SCREEN_GUI_MODE": "Wymuś tryb graficzny",
|
||||||
|
|
||||||
|
"VTMENU_THEME_SELECT": "Wybór motywu",
|
||||||
|
|
||||||
|
"VTMENU_UTIL_SHOW_EFI_DRV": "Pokaż sterowniki EFI",
|
||||||
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Napraw błąd BlinitializeLibrary systemu Windows",
|
||||||
|
|
||||||
|
"VTMENU_JSON_CHK_JSON": "Sprawdź konfigurację wtyczki json (ventoy.json)",
|
||||||
|
"VTMENU_JSON_CHK_CONTROL": "Sprawdź konfigurację wtyczki globalnej kontroli",
|
||||||
|
"VTMENU_JSON_CHK_THEME": "Sprawdź konfigurację wtyczki motywu",
|
||||||
|
"VTMENU_JSON_CHK_AUTOINS": "Sprawdź konfigurację automatycznej instalacji wtyczki",
|
||||||
|
"VTMENU_JSON_CHK_PERSIST": "Sprawdź konfigurację wtyczki trwałości",
|
||||||
|
"VTMENU_JSON_CHK_MENU_ALIAS": "Sprawdź konfigurację wtyczek aliasów menu",
|
||||||
|
"VTMENU_JSON_CHK_MENU_TIP": "Sprawdź konfigurację wtyczki podpowiedzi menu",
|
||||||
|
"VTMENU_JSON_CHK_MENU_CLASS": "Sprawdź konfigurację wtyczki klasy menu",
|
||||||
|
"VTMENU_JSON_CHK_INJECTION": "Sprawdź konfigurację wtyczki wtrysku",
|
||||||
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Sprawdź automatyczną konfigurację wtyczki memdisk",
|
||||||
|
"VTMENU_JSON_CHK_IMG_LIST": "Sprawdź konfigurację wtyczki listy obrazów",
|
||||||
|
"VTMENU_JSON_CHK_IMG_BLIST": "Sprawdź konfigurację wtyczki czarnej listy obrazów",
|
||||||
|
"VTMENU_JSON_CHK_CONF_REPLACE": "Sprawdź konfigurację bootowania zamień konfigurację wtyczki",
|
||||||
|
"VTMENU_JSON_CHK_DUD": "Sprawdź konfigurację wtyczki dud",
|
||||||
|
"VTMENU_JSON_CHK_PASSWORD": "Sprawdź konfigurację wtyczki hasła",
|
||||||
|
|
||||||
|
"VTMENU_NORMAL_MODE": "Uruchom w trybie normalnym",
|
||||||
|
"VTMENU_WIMBOOT_MODE": "Uruchom w trybie Wimboot",
|
||||||
|
"VTMENU_GRUB2_MODE": "Uruchom w trybie grub2",
|
||||||
|
"VTMENU_MEMDISK_MODE": "Uruchom w trybie memdisk",
|
||||||
|
|
||||||
|
"VTMENU_RET_TO_LISTVIEW": "Powrót do widoku listy",
|
||||||
|
"VTMENU_RET_TO_TREEVIEW": "Powrót do TreeView",
|
||||||
|
|
||||||
|
"VTMENU_NO_AUTOINS_SCRIPT": "Uruchom bez szablonu automatycznej instalacji",
|
||||||
|
"VTMENU_AUTOINS_USE": "Uruchom z",
|
||||||
|
|
||||||
|
"VTMENU_NO_PERSIST": "Uruchom bez trwałości",
|
||||||
|
"VTMENU_PERSIST_USE": "Uruchom z",
|
||||||
|
|
||||||
|
"VTMENU_BROWER_RETURN": "Powrót",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "naciśnij klawisz Enter, aby wyjść",
|
||||||
|
"VTMENU_ENTER_REBOOT": "naciśnij klawisz Enter, aby ponownie uruchomić",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "naciśnij klawisz Enter, aby kontynuować",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
@@ -1,23 +1,23 @@
|
|||||||
{
|
{
|
||||||
"VTMENU_LANGUAGE_NAME": "Portuguese (Português de Portugal)",
|
"VTMENU_LANGUAGE_NAME": "Portuguese (Português de Portugal)",
|
||||||
|
|
||||||
"VTMENU_STR_HOTKEY_LIST": "L:Língua F1:Ajuda F2:Navegar F3:Exibição de lista F4:Inicialização local F5:Ferramentas F6:ExMenu",
|
"VTMENU_STR_HOTKEY_LIST": "L:Idioma F1:Ajuda F2:Navegar F3:Estrutura F4:Arranque local F5:Ferramentas F6:Sair",
|
||||||
"VTMENU_STR_HOTKEY_TREE": "L:Língua F1:Ajuda F2:Navegar F3:TreeView F4:Inicialização local F5:Ferramentas F6:ExMenu",
|
"VTMENU_STR_HOTKEY_TREE": "L:Idioma F1:Ajuda F2:Navegar F3:Estrutura F4:Arranque local F5:Ferramentas F6:Sair",
|
||||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
"VTMENU_RETURN_PREVIOUS": "Voltar ao menu anterior [Esc]",
|
||||||
|
|
||||||
"VTMENU_MENU_LANG": "Seleção de idioma do menu",
|
"VTMENU_MENU_LANG": "Seleção de idioma do menu",
|
||||||
|
|
||||||
"VTMENU_LB_SBOOT_WINDOWS": "Pesquise e inicialize o Windows",
|
"VTMENU_LB_SBOOT_WINDOWS": "Pesquisar e iniciar o Windows",
|
||||||
"VTMENU_LB_SBOOT_G4D": "Pesquise e inicialize o Grub4dos",
|
"VTMENU_LB_SBOOT_G4D": "Pesquisar e iniciar o Grub4dos",
|
||||||
"VTMENU_LB_SBOOT_HDD1": "Inicialize o 1º disco local",
|
"VTMENU_LB_SBOOT_HDD1": "Arrancar o 1º disco local",
|
||||||
"VTMENU_LB_SBOOT_HDD2": "Inicialize o segundo disco local",
|
"VTMENU_LB_SBOOT_HDD2": "Arrancar o 2º disco local",
|
||||||
"VTMENU_LB_SBOOT_HDD3": "Inicialize o terceiro disco local",
|
"VTMENU_LB_SBOOT_HDD3": "Arrancar o 3º disco local",
|
||||||
"VTMENU_LB_SBOOT_X64EFI": "Pesquise e inicialize o BOOTX64.EFI",
|
"VTMENU_LB_SBOOT_X64EFI": "Pesquisar e iniciar o BOOTX64.EFI",
|
||||||
"VTMENU_LB_SBOOT_IA32EFI": "Pesquise e inicialize o BOOTIA32.EFI",
|
"VTMENU_LB_SBOOT_IA32EFI": "Pesquisar e iniciar o BOOTIA32.EFI",
|
||||||
"VTMENU_LB_SBOOT_AA64EFI": "Pesquise e inicialize o BOOTAA64.EFI",
|
"VTMENU_LB_SBOOT_AA64EFI": "Pesquisar e iniciar o BOOTAA64.EFI",
|
||||||
"VTMENU_LB_SBOOT_XORBOOT": "Pesquise e inicialize o xorboot",
|
"VTMENU_LB_SBOOT_XORBOOT": "Pesquisar e iniciar o xorboot",
|
||||||
|
|
||||||
"VTMENU_FILE_CHKSUM": "Soma de verificação do arquivo",
|
"VTMENU_FILE_CHKSUM": "Checksum do ficheiro",
|
||||||
"VTMENU_CHKSUM_MD5_CALC": "Calcular MD5",
|
"VTMENU_CHKSUM_MD5_CALC": "Calcular MD5",
|
||||||
"VTMENU_CHKSUM_SHA1_CALC": "Calcular SHA1",
|
"VTMENU_CHKSUM_SHA1_CALC": "Calcular SHA1",
|
||||||
"VTMENU_CHKSUM_SHA256_CALC": "Calcular SHA256",
|
"VTMENU_CHKSUM_SHA256_CALC": "Calcular SHA256",
|
||||||
@@ -27,55 +27,59 @@
|
|||||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calcular e verificar SHA256",
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calcular e verificar SHA256",
|
||||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calcular e verificar SHA512",
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calcular e verificar SHA512",
|
||||||
|
|
||||||
"VTMENU_POWER": "Fonte de energia",
|
"VTMENU_POWER": "Energia",
|
||||||
"VTMENU_POWER_REBOOT": "Reinício",
|
"VTMENU_POWER_REBOOT": "Reiniciar",
|
||||||
"VTMENU_POWER_HALT": "Desligar",
|
"VTMENU_POWER_HALT": "Desligar",
|
||||||
"VTMENU_POWER_BOOT_EFIFW": "Reinicie a configuração EFI",
|
"VTMENU_POWER_BOOT_EFIFW": "Reiniciar com a configuração EFI",
|
||||||
|
|
||||||
"VTMENU_KEYBRD_LAYOUT": "Layouts de teclado",
|
"VTMENU_KEYBRD_LAYOUT": "Esquemas de teclado",
|
||||||
"VTMENU_HWINFO": "Informações de hardware",
|
"VTMENU_HWINFO": "Informação do hardware",
|
||||||
|
|
||||||
"VTMENU_RESOLUTION_CFG": "Configuração de resolução",
|
"VTMENU_RESOLUTION_CFG": "Configuração da resolução",
|
||||||
"VTMENU_SCREEN_MODE": "Screen Modo de exibição",
|
"VTMENU_SCREEN_MODE": "Modo de exibição",
|
||||||
"VTMENU_SCREEN_TEXT_MODE": "Modo de texto",
|
"VTMENU_SCREEN_TEXT_MODE": "Modo texto",
|
||||||
"VTMENU_SCREEN_GUI_MODE": "Modo gráfico",
|
"VTMENU_SCREEN_GUI_MODE": "Modo gráfico",
|
||||||
|
|
||||||
"VTMENU_THEME_SELECT": "Seleção de tema",
|
"VTMENU_THEME_SELECT": "Seleção de tema",
|
||||||
|
|
||||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
"VTMENU_UTIL_SHOW_EFI_DRV": "Mostrar controladores EFI",
|
||||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Corrigir falha BlinitializeLibrary do Windows",
|
||||||
|
|
||||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
"VTMENU_JSON_CHK_JSON": "Verificar configuração do plugin json (ventoy.json)",
|
||||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
"VTMENU_JSON_CHK_CONTROL": "Verificar a configuração do plugin de controlo global",
|
||||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
"VTMENU_JSON_CHK_THEME": "Verificar configuração do plugin do tema",
|
||||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
"VTMENU_JSON_CHK_AUTOINS": "Verificar a configuração do plugin de instalação automática",
|
||||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
"VTMENU_JSON_CHK_PERSIST": "Verificar a configuração do plugin de persistência",
|
||||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
"VTMENU_JSON_CHK_MENU_ALIAS": "Verificar a configuração do plugin do menu alias",
|
||||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
"VTMENU_JSON_CHK_MENU_TIP": "Verificar a configuração do plugin do menu de dica",
|
||||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
"VTMENU_JSON_CHK_MENU_CLASS": "Verificar a configuração do plugin do menu classe",
|
||||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
"VTMENU_JSON_CHK_INJECTION": "Verificar a configuração do plugin de injeção",
|
||||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Verificar a configuração do plugin automático do memdisk",
|
||||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
"VTMENU_JSON_CHK_IMG_LIST": "Verificar configuração do plugin da lista de imagens",
|
||||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
"VTMENU_JSON_CHK_IMG_BLIST": "Verificar configuração do plugin da lista negra de imagens",
|
||||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
"VTMENU_JSON_CHK_CONF_REPLACE": "Verificar a configuração do plugin de substituição de conf. de arranque",
|
||||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
"VTMENU_JSON_CHK_DUD": "Verificar configuração do plugin dud",
|
||||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
"VTMENU_JSON_CHK_PASSWORD": "Verificar configuração do plugin palavra-passe",
|
||||||
|
|
||||||
"VTMENU_NORMAL_MODE": "Inicializar no modo normal",
|
"VTMENU_NORMAL_MODE": "Arrancar no modo normal",
|
||||||
"VTMENU_WIMBOOT_MODE": "Inicializar no modo wimboot",
|
"VTMENU_WIMBOOT_MODE": "Arrancar no modo wimboot",
|
||||||
"VTMENU_GRUB2_MODE": "Inicializar no modo grub2",
|
"VTMENU_GRUB2_MODE": "Arrancar no modo grub2",
|
||||||
"VTMENU_MEMDISK_MODE": "Inicializar no modo memdisk",
|
"VTMENU_MEMDISK_MODE": "Arrancar no modo memdisk",
|
||||||
|
|
||||||
"VTMENU_RET_TO_LISTVIEW": "Retornar para ListView",
|
"VTMENU_RET_TO_LISTVIEW": "Voltar para Lista",
|
||||||
"VTMENU_RET_TO_TREEVIEW": "Retornar para TreeView",
|
"VTMENU_RET_TO_TREEVIEW": "Voltar para Estrutura",
|
||||||
|
|
||||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
"VTMENU_NO_AUTOINS_SCRIPT": "Arrancar sem modelo de instalação automática",
|
||||||
"VTMENU_AUTOINS_USE": "Boot with",
|
"VTMENU_AUTOINS_USE": "Arrancar com",
|
||||||
|
|
||||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
"VTMENU_NO_PERSIST": "Arrancar sem persistência",
|
||||||
"VTMENU_PERSIST_USE": "Boot with",
|
"VTMENU_PERSIST_USE": "Arrancar com",
|
||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Retornar",
|
"VTMENU_BROWER_RETURN": "Voltar",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "pressione a tecla Enter para sair",
|
||||||
|
"VTMENU_ENTER_REBOOT": "pressione a tecla Enter para reiniciar",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "pressione a tecla Enter para continuar",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Вернуться",
|
"VTMENU_BROWER_RETURN": "Вернуться",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "нажмите клавишу Enter, чтобы выйти",
|
||||||
|
"VTMENU_ENTER_REBOOT": "нажмите клавишу Enter для перезагрузки",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "нажмите клавишу Enter, чтобы продолжить",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Return",
|
"VTMENU_BROWER_RETURN": "Return",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "press Enter key to exit",
|
||||||
|
"VTMENU_ENTER_REBOOT": "press Enter key to reboot",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "press Enter key to continue",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
85
INSTALL/grub/menu/ta_IN.json
Normal file
85
INSTALL/grub/menu/ta_IN.json
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"VTMENU_LANGUAGE_NAME": "Tamil (தமிழ்)",
|
||||||
|
|
||||||
|
"VTMENU_STR_HOTKEY_LIST": "L:மொழி F1:உதவி F2:உலாவுக F3:பட்டியல்பார்வை F4:லோக்கல்பூட் F5:கருவிகள் F6:ExMenu",
|
||||||
|
"VTMENU_STR_HOTKEY_TREE": "L:மொழி F1:உதவி F2:உலாவுக F3:மரப்பார்வை F4:லோக்கல்பூட் F5:கருவிகள் F6:ExMenu",
|
||||||
|
"VTMENU_RETURN_PREVIOUS": "முந்தைய மெனுவுக்குத் திரும்பு [Esc]",
|
||||||
|
|
||||||
|
"VTMENU_MENU_LANG": "மெனு மொழி தேர்வு",
|
||||||
|
|
||||||
|
"VTMENU_LB_SBOOT_WINDOWS": "விண்டோஸைத் தேடி துவக்கவும்",
|
||||||
|
"VTMENU_LB_SBOOT_G4D": "Grub4dos ஐத் தேடி துவக்கவும்",
|
||||||
|
"VTMENU_LB_SBOOT_HDD1": "1வது உள்ளூர் வட்டை துவக்கவும்",
|
||||||
|
"VTMENU_LB_SBOOT_HDD2": "2வது உள்ளூர் வட்டை துவக்கவும்",
|
||||||
|
"VTMENU_LB_SBOOT_HDD3": "3வது உள்ளூர் வட்டை துவக்கவும்",
|
||||||
|
"VTMENU_LB_SBOOT_X64EFI": "BOOTX64.EFI ஐத் தேடி துவக்கவும்",
|
||||||
|
"VTMENU_LB_SBOOT_IA32EFI": "BOOTIA32.EFI ஐத் தேடி துவக்கவும்",
|
||||||
|
"VTMENU_LB_SBOOT_AA64EFI": "BOOTAA64.EFI ஐத் தேடி துவக்கவும்",
|
||||||
|
"VTMENU_LB_SBOOT_XORBOOT": "xorboot ஐத் தேடி துவக்கவும்",
|
||||||
|
|
||||||
|
"VTMENU_FILE_CHKSUM": "கோப்பு செக்சம்",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC": "md5sum ஐக் கணக்கிடவும்",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC": "sha1sum ஐக் கணக்கிடவும்",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC": "sha256sum ஐக் கணக்கிடவும்",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC": "sha512sum ஐக் கணக்கிடவும்",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC_CHK": "md5sum ஐக் கணக்கிட்டு சரிபார்க்கவும்",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC_CHK": "sha1sum ஐக் கணக்கிட்டு சரிபார்க்கவும்",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "sha256sum ஐக் கணக்கிட்டு சரிபார்க்கவும்",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "sha512sum ஐக் கணக்கிட்டு சரிபார்க்கவும்",
|
||||||
|
|
||||||
|
"VTMENU_POWER": "பவர்",
|
||||||
|
"VTMENU_POWER_REBOOT": "மறுதொடக்கம்",
|
||||||
|
"VTMENU_POWER_HALT": "நிறுத்து",
|
||||||
|
"VTMENU_POWER_BOOT_EFIFW": "EFI அமைப்பிற்கு மீண்டும் துவக்கவும்",
|
||||||
|
|
||||||
|
"VTMENU_KEYBRD_LAYOUT": "விசைப்பலகை தளவமைப்புகள்",
|
||||||
|
"VTMENU_HWINFO": "வன்பொருள் தகவல்",
|
||||||
|
|
||||||
|
"VTMENU_RESOLUTION_CFG": "தீர்மானம் கட்டமைப்பு",
|
||||||
|
"VTMENU_SCREEN_MODE": "திரை காட்சி பயன்முறை",
|
||||||
|
"VTMENU_SCREEN_TEXT_MODE": "கட்டாய உரை பயன்முறை",
|
||||||
|
"VTMENU_SCREEN_GUI_MODE": "கட்டாய கிராபிக்ஸ் பயன்முறை",
|
||||||
|
|
||||||
|
"VTMENU_THEME_SELECT": "தீம் தேர்வு",
|
||||||
|
|
||||||
|
"VTMENU_UTIL_SHOW_EFI_DRV": "EFI இயக்கிகளைக் காட்டு",
|
||||||
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Windows BlinitializeLibrary தோல்வியைச் சரிசெய்தல்",
|
||||||
|
|
||||||
|
"VTMENU_JSON_CHK_JSON": "செருகுநிரல் json உள்ளமைவைச் சரிபார்க்கவும் (ventoy.json)",
|
||||||
|
"VTMENU_JSON_CHK_CONTROL": "உலகளாவிய கட்டுப்பாட்டு செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_THEME": "தீம் செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_AUTOINS": "தானாக நிறுவும் செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_PERSIST": "நிலைத்தன்மை செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_MENU_ALIAS": "மெனு மாற்று செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_MENU_TIP": "மெனு முனை செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_MENU_CLASS": "மெனு வகுப்பு செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_INJECTION": "ஊசி செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "ஆட்டோ மெம்டிஸ்க் செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_IMG_LIST": "பட பட்டியல் செருகுநிரல் உள்ளமைவை சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_IMG_BLIST": "படத்தின் தடுப்புப்பட்டியல் செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_CONF_REPLACE": "பூட் conf சொருகி உள்ளமைவை மாற்றுவதை சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_DUD": "dud செருகுநிரல் உள்ளமைவை சரிபார்க்கவும்",
|
||||||
|
"VTMENU_JSON_CHK_PASSWORD": "கடவுச்சொல் செருகுநிரல் உள்ளமைவைச் சரிபார்க்கவும்",
|
||||||
|
|
||||||
|
"VTMENU_NORMAL_MODE": "சாதாரண பயன்முறையில் துவக்கவும்",
|
||||||
|
"VTMENU_WIMBOOT_MODE": "wimboot பயன்முறையில் துவக்கவும்",
|
||||||
|
"VTMENU_GRUB2_MODE": "grub2 பயன்முறையில் துவக்கவும்",
|
||||||
|
"VTMENU_MEMDISK_MODE": "memdisk பயன்முறையில் துவக்கவும்",
|
||||||
|
|
||||||
|
"VTMENU_RET_TO_LISTVIEW": "பட்டியல்பார்வை பக்கத்துக்குத் திரும்பு",
|
||||||
|
"VTMENU_RET_TO_TREEVIEW": "மரப்பார்வை பக்கத்துக்குத் திரும்பு",
|
||||||
|
|
||||||
|
"VTMENU_NO_AUTOINS_SCRIPT": "தானியங்கி நிறுவல் டெம்ப்ளேட் இல்லாமல் துவக்கவும்",
|
||||||
|
"VTMENU_AUTOINS_USE": "துவக்கவும் இத்துடன்",
|
||||||
|
|
||||||
|
"VTMENU_NO_PERSIST": "விடாமுயற்சி இல்லாமல் துவக்கவும்",
|
||||||
|
"VTMENU_PERSIST_USE": "துவக்கவும் இத்துடன்",
|
||||||
|
|
||||||
|
"VTMENU_BROWER_RETURN": "திரும்பு",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "வெளியேற Enter விசையை அழுத்தவும்",
|
||||||
|
"VTMENU_ENTER_REBOOT": "மறுதொடக்கம் செய்ய Enter விசையை அழுத்தவும்",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "தொடர Enter விசையை அழுத்தவும்",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "Geri Dön",
|
"VTMENU_BROWER_RETURN": "Geri Dön",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "çıkmak için ENTER tuşuna basın",
|
||||||
|
"VTMENU_ENTER_REBOOT": "yeniden başlatmak için ENTER'a basın",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "devam etmek için ENTER'a basın",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -77,5 +77,9 @@
|
|||||||
|
|
||||||
"VTMENU_BROWER_RETURN": "返回",
|
"VTMENU_BROWER_RETURN": "返回",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "按回车键退出",
|
||||||
|
"VTMENU_ENTER_REBOOT": "按回车键重启",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "按回车键继续",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
85
INSTALL/grub/menu/zh_TW.json
Normal file
85
INSTALL/grub/menu/zh_TW.json
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"VTMENU_LANGUAGE_NAME": "Chinese Traditional (正體中文)",
|
||||||
|
|
||||||
|
"VTMENU_STR_HOTKEY_LIST": "L:語言 F1:說明 F2:本地瀏覽 F3:清單模式 F4:本地啟動 F5:工具 F6:擴展選單",
|
||||||
|
"VTMENU_STR_HOTKEY_TREE": "L:語言 F1:說明 F2:本地瀏覽 F3:樹形模式 F4:本地啟動 F5:工具 F6:擴展選單",
|
||||||
|
"VTMENU_RETURN_PREVIOUS": "返回上一級選單 [Esc]",
|
||||||
|
|
||||||
|
"VTMENU_MENU_LANG": "功能表語言",
|
||||||
|
|
||||||
|
"VTMENU_LB_SBOOT_WINDOWS": "搜尋並啟動 Windows",
|
||||||
|
"VTMENU_LB_SBOOT_G4D": "搜尋並啟動 Grub4dos",
|
||||||
|
"VTMENU_LB_SBOOT_HDD1": "啟動本地硬碟1中的系統",
|
||||||
|
"VTMENU_LB_SBOOT_HDD2": "啟動本地硬碟2中的系統",
|
||||||
|
"VTMENU_LB_SBOOT_HDD3": "啟動本地硬碟3中的系統",
|
||||||
|
"VTMENU_LB_SBOOT_X64EFI": "搜尋並啟動 BOOTX64.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_IA32EFI": "搜尋並啟動 BOOTIA32.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_AA64EFI": "搜尋並啟動 BOOTAA64.EFI",
|
||||||
|
"VTMENU_LB_SBOOT_XORBOOT": "搜尋並啟動 xorboot",
|
||||||
|
|
||||||
|
"VTMENU_FILE_CHKSUM": "檔案校驗",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC": "計算 MD5 校驗值",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC": "計算 SHA1 校驗值",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC": "計算 SHA256 校驗值",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC": "計算 SHA512 校驗值",
|
||||||
|
"VTMENU_CHKSUM_MD5_CALC_CHK": "計算並檢查 MD5 校驗值",
|
||||||
|
"VTMENU_CHKSUM_SHA1_CALC_CHK": "計算並檢查 SHA1 校驗值",
|
||||||
|
"VTMENU_CHKSUM_SHA256_CALC_CHK": "計算並檢查 SHA256 校驗值",
|
||||||
|
"VTMENU_CHKSUM_SHA512_CALC_CHK": "計算並檢查 SHA512 校驗值",
|
||||||
|
|
||||||
|
"VTMENU_POWER": "電源",
|
||||||
|
"VTMENU_POWER_REBOOT": "重啟",
|
||||||
|
"VTMENU_POWER_HALT": "關機",
|
||||||
|
"VTMENU_POWER_BOOT_EFIFW": "重啟進入 UEFI 設定選單",
|
||||||
|
|
||||||
|
"VTMENU_KEYBRD_LAYOUT": "鍵盤配置",
|
||||||
|
"VTMENU_HWINFO": "硬體資訊",
|
||||||
|
|
||||||
|
"VTMENU_RESOLUTION_CFG": "螢幕解析度",
|
||||||
|
"VTMENU_SCREEN_MODE": "顯示模式",
|
||||||
|
"VTMENU_SCREEN_TEXT_MODE": "文字模式",
|
||||||
|
"VTMENU_SCREEN_GUI_MODE": "圖形模式",
|
||||||
|
|
||||||
|
"VTMENU_THEME_SELECT": "主題選擇",
|
||||||
|
|
||||||
|
"VTMENU_UTIL_SHOW_EFI_DRV": "顯示 UEFI 驅動",
|
||||||
|
"VTMENU_UTIL_FIX_BLINIT_FAIL": "修復 Windows BlinitializeLibrary 錯誤",
|
||||||
|
|
||||||
|
"VTMENU_JSON_CHK_JSON": "檢查外掛程式設定檔 (ventoy.json)",
|
||||||
|
"VTMENU_JSON_CHK_CONTROL": "配置檢查 —— 全域控制外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_THEME": "配置檢查 —— 主題外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_AUTOINS": "配置檢查 —— 自動安裝外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_PERSIST": "配置檢查 —— 持久化外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_MENU_ALIAS": "配置檢查 —— 功能表別名外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_MENU_TIP": "配置檢查 —— 功能表提示外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_MENU_CLASS": "配置檢查 —— 功能表類型外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_INJECTION": "配置檢查 —— 檔注入外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_AUTO_MEMDISK": "配置檢查 —— 自動內存檔模式外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_IMG_LIST": "配置檢查 —— 檔清單外掛程式(白名單)",
|
||||||
|
"VTMENU_JSON_CHK_IMG_BLIST": "配置檢查 —— 檔清單外掛程式(黑名單)",
|
||||||
|
"VTMENU_JSON_CHK_CONF_REPLACE": "配置檢查 —— 啟動配置替換外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_DUD": "配置檢查 —— Driver Update Disk外掛程式",
|
||||||
|
"VTMENU_JSON_CHK_PASSWORD": "配置檢查 —— 密碼外掛程式",
|
||||||
|
|
||||||
|
"VTMENU_NORMAL_MODE": "以正常模式啟動",
|
||||||
|
"VTMENU_WIMBOOT_MODE": "以 wimboot 模式啟動",
|
||||||
|
"VTMENU_GRUB2_MODE": "以 grub2 模式啟動",
|
||||||
|
"VTMENU_MEMDISK_MODE": "以內存檔模式啟動",
|
||||||
|
|
||||||
|
"VTMENU_RET_TO_LISTVIEW": "返回到清單模式",
|
||||||
|
"VTMENU_RET_TO_TREEVIEW": "返回到樹形模式",
|
||||||
|
|
||||||
|
"VTMENU_NO_AUTOINS_SCRIPT": "不使用自動安裝腳本",
|
||||||
|
"VTMENU_AUTOINS_USE": "使用",
|
||||||
|
|
||||||
|
"VTMENU_NO_PERSIST": "不使用持久化資料檔案",
|
||||||
|
"VTMENU_PERSIST_USE": "使用",
|
||||||
|
|
||||||
|
"VTMENU_BROWER_RETURN": "返回",
|
||||||
|
|
||||||
|
"VTMENU_ENTER_EXIT": "按回車鍵退出",
|
||||||
|
"VTMENU_ENTER_REBOOT": "按回車鍵重啟",
|
||||||
|
"VTMENU_ENTER_CONTINUE": "按回車鍵繼續",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
@@ -59,6 +59,7 @@
|
|||||||
"STR_PART_FS":"نظام الملفات",
|
"STR_PART_FS":"نظام الملفات",
|
||||||
"STR_PART_CLUSTER":"حجم الكتلة",
|
"STR_PART_CLUSTER":"حجم الكتلة",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"القيمة الافتراضية للنظام",
|
"STR_PART_CLUSTER_DEFAULT":"القيمة الافتراضية للنظام",
|
||||||
|
"STR_DONATE":"يتبرع",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -122,7 +123,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Ianə",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -186,6 +187,7 @@
|
|||||||
"STR_PART_FS":"파일 시스템",
|
"STR_PART_FS":"파일 시스템",
|
||||||
"STR_PART_CLUSTER":"클러스터 크기",
|
"STR_PART_CLUSTER":"클러스터 크기",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"시스템 기본값",
|
"STR_PART_CLUSTER_DEFAULT":"시스템 기본값",
|
||||||
|
"STR_DONATE":"기부",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -249,6 +251,7 @@
|
|||||||
"STR_PART_FS":"文件系统",
|
"STR_PART_FS":"文件系统",
|
||||||
"STR_PART_CLUSTER":"簇大小",
|
"STR_PART_CLUSTER":"簇大小",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"系统默认值",
|
"STR_PART_CLUSTER_DEFAULT":"系统默认值",
|
||||||
|
"STR_DONATE":"捐助",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -312,6 +315,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Donate",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -320,6 +324,7 @@
|
|||||||
"FontFamily": "Courier New",
|
"FontFamily": "Courier New",
|
||||||
"FontSize": 16,
|
"FontSize": 16,
|
||||||
"Author": "44f33",
|
"Author": "44f33",
|
||||||
|
|
||||||
"STR_ERROR": "შეცდომა",
|
"STR_ERROR": "შეცდომა",
|
||||||
"STR_WARNING": "გაფრთხილება",
|
"STR_WARNING": "გაფრთხილება",
|
||||||
"STR_INFO": "ინფორმაცია",
|
"STR_INFO": "ინფორმაცია",
|
||||||
@@ -374,6 +379,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"შემოწირულობა",
|
||||||
|
|
||||||
"STRXXX": ""
|
"STRXXX": ""
|
||||||
},
|
},
|
||||||
@@ -437,6 +443,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"اهداء",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -500,6 +507,7 @@
|
|||||||
"STR_PART_FS":"System plików",
|
"STR_PART_FS":"System plików",
|
||||||
"STR_PART_CLUSTER":"Wielkość klastra",
|
"STR_PART_CLUSTER":"Wielkość klastra",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Wartość domyślna systemu",
|
"STR_PART_CLUSTER_DEFAULT":"Wartość domyślna systemu",
|
||||||
|
"STR_DONATE":"Podarować",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -563,6 +571,7 @@
|
|||||||
"STR_PART_FS":"Sistema de arquivo",
|
"STR_PART_FS":"Sistema de arquivo",
|
||||||
"STR_PART_CLUSTER":"Tamanho do cluster",
|
"STR_PART_CLUSTER":"Tamanho do cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valor padrão do sistema",
|
"STR_PART_CLUSTER_DEFAULT":"Valor padrão do sistema",
|
||||||
|
"STR_DONATE":"Doar",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -626,6 +635,7 @@
|
|||||||
"STR_PART_FS":"Dosya Sistemi",
|
"STR_PART_FS":"Dosya Sistemi",
|
||||||
"STR_PART_CLUSTER":"Sektör Boyutu",
|
"STR_PART_CLUSTER":"Sektör Boyutu",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Sistem varsayılan değeri",
|
"STR_PART_CLUSTER_DEFAULT":"Sistem varsayılan değeri",
|
||||||
|
"STR_DONATE":"Bağış yapmak",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -689,6 +699,7 @@
|
|||||||
"STR_PART_FS":"Dateisystem",
|
"STR_PART_FS":"Dateisystem",
|
||||||
"STR_PART_CLUSTER":"Clustergröße",
|
"STR_PART_CLUSTER":"Clustergröße",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Systemstandardwert",
|
"STR_PART_CLUSTER_DEFAULT":"Systemstandardwert",
|
||||||
|
"STR_DONATE":"Spenden",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -752,6 +763,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Donate",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -815,6 +827,7 @@
|
|||||||
"STR_PART_FS":"Système de fichiers",
|
"STR_PART_FS":"Système de fichiers",
|
||||||
"STR_PART_CLUSTER":"Taille de cluster",
|
"STR_PART_CLUSTER":"Taille de cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valeur par défaut du système",
|
"STR_PART_CLUSTER_DEFAULT":"Valeur par défaut du système",
|
||||||
|
"STR_DONATE":"Faire un don",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -878,6 +891,7 @@
|
|||||||
"STR_PART_FS":"Souborový systém",
|
"STR_PART_FS":"Souborový systém",
|
||||||
"STR_PART_CLUSTER":"Velikost clusteru",
|
"STR_PART_CLUSTER":"Velikost clusteru",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Výchozí hodnota systému",
|
"STR_PART_CLUSTER_DEFAULT":"Výchozí hodnota systému",
|
||||||
|
"STR_DONATE":"Darovat",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -940,6 +954,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Darovať",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1003,6 +1018,7 @@
|
|||||||
"STR_PART_FS":"Sistema de archivos",
|
"STR_PART_FS":"Sistema de archivos",
|
||||||
"STR_PART_CLUSTER":"Tamaño de cluster",
|
"STR_PART_CLUSTER":"Tamaño de cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
||||||
|
"STR_DONATE":"Donar",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1066,69 +1082,71 @@
|
|||||||
"STR_PART_FS":"Sistema de archivos",
|
"STR_PART_FS":"Sistema de archivos",
|
||||||
"STR_PART_CLUSTER":"Tamaño de cluster",
|
"STR_PART_CLUSTER":"Tamaño de cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
||||||
|
"STR_DONATE":"Donar",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Russian (Pусский)",
|
"name":"Russian (Русский)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"BL4CKH47H4CK3R, Teraskull, thehugonote, wiz64, dmitrygribenchuk",
|
"Author":"Dmitry Yerokhin, BL4CKH47H4CK3R, Teraskull, thehugonote, wiz64, dmitrygribenchuk, Темак",
|
||||||
|
|
||||||
"STR_ERROR":"Ошибка",
|
"STR_ERROR":"Ошибка",
|
||||||
"STR_WARNING":"Предупреждение",
|
"STR_WARNING":"Внимание",
|
||||||
"STR_INFO":"Информация",
|
"STR_INFO":"Информация",
|
||||||
"STR_INCORRECT_DIR":"Пожалуйста, запустите в другом каталоге!",
|
"STR_INCORRECT_DIR":"Запустите в другой папке!",
|
||||||
"STR_INCORRECT_TREE_DIR":"Не запускайте меня здесь, пожалуйста, загрузите выпущенный установочный пакет и запустите его в другом месте.",
|
"STR_INCORRECT_TREE_DIR":"Не запускайте приложение здесь, загрузите установочный пакет и запустите его в другом месте.",
|
||||||
"STR_DEVICE":"Устройство",
|
"STR_DEVICE":"Устройство",
|
||||||
"STR_LOCAL_VER":"Ventoy в пакете",
|
"STR_LOCAL_VER":"Вентой в пакете",
|
||||||
"STR_DISK_VER":"Ventoy на устройстве",
|
"STR_DISK_VER":"Вентой на накопителе",
|
||||||
"STR_STATUS":"Статус - ГОТОВ",
|
"STR_STATUS":"Состояние — ГОТОВ",
|
||||||
"STR_INSTALL":"Установить",
|
"STR_INSTALL":"Установить",
|
||||||
"STR_UPDATE":"Обновить",
|
"STR_UPDATE":"Обновить",
|
||||||
"STR_UPDATE_TIP":"Обновление безопасно, ISO-файлы останутся без изменений.#@Продолжить?",
|
"STR_UPDATE_TIP":"Обновление безопасно, ISO-образы останутся без изменений.#@Продолжить?",
|
||||||
"STR_INSTALL_TIP":"Диск будет отформатирован и все данные будут потеряны.#@Продолжить?",
|
"STR_INSTALL_TIP":"Это действие отформатирует накопитель, все данные на нём будут уничтожены.#@Продолжить?",
|
||||||
"STR_INSTALL_TIP2":"Диск будет отформатирован и все данные будут потеряны.#@Вы действительно хотите продолжить?",
|
"STR_INSTALL_TIP2":"Это действие отформатирует накопитель, все данные на нём будут уничтожены.#@Вы действительно хотите продолжить?",
|
||||||
"STR_INSTALL_SUCCESS":"Поздравляем!#@Ventoy был успешно установлен на устройство.",
|
"STR_INSTALL_SUCCESS":"Поздравляем!#@Установка Вентоя на устройстве успешно выполнена.",
|
||||||
"STR_INSTALL_FAILED":"Во время установки Ventoy произошла ошибка. Переподключите устройство и попробуйте снова. Проверьте файл log.txt для получения подробной информации.",
|
"STR_INSTALL_FAILED":"Ошибка при установке. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями. Если ошибка не исчезает, см. «FAQ» на официальном сайте.",
|
||||||
"STR_UPDATE_SUCCESS":"Поздравляем!#@Ventoy был успешно обновлен на устройстве.",
|
"STR_UPDATE_SUCCESS":"Поздравляем!#@Обновление Вентоя на устройстве успешно выполнено.",
|
||||||
"STR_UPDATE_FAILED":"Во время обновления Ventoy произошла ошибка. Переподключите устройство и попробуйте снова. Проверьте файл log.txt для получения подробной информации.",
|
"STR_UPDATE_FAILED":"Ошибка при обновлении Вентоя. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями. Если ошибка не исчезает, см. «FAQ» на официальном сайте.",
|
||||||
"STR_WAIT_PROCESS":"Процесс запущен, пожалуйста подождите...",
|
"STR_WAIT_PROCESS":"Действие запущено, подождите...",
|
||||||
"STR_MENU_OPTION":"Опции",
|
"STR_MENU_OPTION":"Настройки",
|
||||||
"STR_MENU_SECURE_BOOT":"Поддержка Secure Boot",
|
"STR_MENU_SECURE_BOOT":"Поддержка Secure Boot",
|
||||||
"STR_MENU_PART_CFG":"Дополнительный раздел",
|
"STR_MENU_PART_CFG":"Дополнительный раздел",
|
||||||
"STR_BTN_OK":"ОК",
|
"STR_BTN_OK":"OK",
|
||||||
"STR_BTN_CANCEL":"Отмена",
|
"STR_BTN_CANCEL":"Отмена",
|
||||||
"STR_PRESERVE_SPACE":"Создать дополнительный раздел в конце диска",
|
"STR_PRESERVE_SPACE":"Создать дополнительный раздел в конце диска",
|
||||||
"STR_SPACE_VAL_INVALID":"Неверное значение размера раздела",
|
"STR_SPACE_VAL_INVALID":"Недействительное значение размера раздела",
|
||||||
"STR_MENU_CLEAR":"Удалить Ventoy",
|
"STR_MENU_CLEAR":"Удалить Вентой",
|
||||||
"STR_CLEAR_SUCCESS":"Ventoy был успешно удалён с устройства.",
|
"STR_CLEAR_SUCCESS":"Удаление Вентоя с устройства успешно выполнено.",
|
||||||
"STR_CLEAR_FAILED":"Во время удаления Ventoy произошла ошибка. Переподключите устройство и попробуйте снова. Проверьте файл log.txt для получения подробной информации.",
|
"STR_CLEAR_FAILED":"Ошибка при удалении Вентоя. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями.",
|
||||||
"STR_MENU_PART_STYLE":"Стиль разметки разделов",
|
"STR_MENU_PART_STYLE":"Стиль разметки разделов",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Пожалуйста, выберите GPT для дисков более 2ТБ",
|
"STR_DISK_2TB_MBR_ERROR":"Для накопителей объёмом более 2 ТБ выберите GPT",
|
||||||
"STR_SHOW_ALL_DEV":"Показать все устройства",
|
"STR_SHOW_ALL_DEV":"Показывать все устройства",
|
||||||
"STR_PART_ALIGN_4KB":"Выровнять разделы с размером 4КБ",
|
"STR_PART_ALIGN_4KB":"Выравнивать разделы с кластерами по 4 КБ",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Ошибка связи:",
|
"STR_WEB_COMMUNICATION_ERR":"Ошибка связи:",
|
||||||
"STR_WEB_REMOTE_ABNORMAL":"Ошибка связи: Удаленное соединение недействительно",
|
"STR_WEB_REMOTE_ABNORMAL":"Ошибка связи: удалённое соединение недействительно",
|
||||||
"STR_WEB_REQUEST_TIMEOUT":"Ошибка связи: Истекло время ожидания запроса",
|
"STR_WEB_REQUEST_TIMEOUT":"Ошибка связи: истекло время ожидания запроса",
|
||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Ошибка связи: Служба недоступна",
|
"STR_WEB_SERVICE_UNAVAILABLE":"Ошибка связи: служба недоступна",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"Статус демона обновлен. Повторите попытку позже.",
|
"STR_WEB_TOKEN_MISMATCH":"Состояние службы обновлено, повторите попытку позже.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Служба занята, повторите попытку позже.",
|
"STR_WEB_SERVICE_BUSY":"Служба занята, повторите попытку позже.",
|
||||||
"STR_MENU_VTSI_CREATE":"Создать файл VTSI",
|
"STR_MENU_VTSI_CREATE":"Создать файл .vtsi",
|
||||||
"STR_VTSI_CREATE_TIP":"На этот раз Ventoy не будет установлен на устройство, а будет только создан файл VTSI#@Продолжить?",
|
"STR_VTSI_CREATE_TIP":"Вместо установки Вентоя на накопитель будет создан только vtsi-файл.#@Продолжить?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"Файл VTSI создан успешно!#@Вы можете использовать Rufus(3.15+), чтобы записать его на устройство, для завершения установки Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"Файл .vtsi успешно создан.#@Вы можете записать его на накопитель с помощью приложения Rufus (v3.15+), чтобы завершить установку Вентоя.",
|
||||||
"STR_VTSI_CREATE_FAILED":"Ошибка создания файла VTSI.",
|
"STR_VTSI_CREATE_FAILED":"Ошибка создания vtsi-файла.",
|
||||||
"STR_MENU_PART_RESIZE":"Неразрушающая установка",
|
"STR_MENU_PART_RESIZE":"Неразрушающая установка",
|
||||||
"STR_PART_RESIZE_TIP":"Ventoy попробует неразрушающую установку, если это возможно. #@Продолжить?",
|
"STR_PART_RESIZE_TIP":"Вентой попробует выполнить неразрушающую установку. #@Продолжить?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Поздравляем!#@Неразрушающая установка Ventoy успешно завершена.",
|
"STR_PART_RESIZE_SUCCESS":"Поздравляем!#@Неразрушающая установка Вентоя успешно выполнена.",
|
||||||
"STR_PART_RESIZE_FAILED":"Не удалось выполнить неразрушающую установку, проверьте файл log.txt для получения подробной информации.",
|
"STR_PART_RESIZE_FAILED":"Не удалось выполнить неразрушающую установку, см. файл log.txt с подробностями.",
|
||||||
"STR_PART_RESIZE_UNSUPPORTED":"Неразрушающая установка Ventoy остановлена, поскольку некоторые условия не могут быть выполнены. Проверьте файл log.txt для получения подробной информации.",
|
"STR_PART_RESIZE_UNSUPPORTED":"Неразрушающая установка Вентоя остановлена из-за несоответствия некоторым требованиям. См. файл log.txt с подробностями.",
|
||||||
"STR_INSTALL_YES_TIP1":"Предупреждение: Данные будут потеряны!",
|
"STR_INSTALL_YES_TIP1":"ВНИМАНИЕ: все данные будут потеряны!",
|
||||||
"STR_INSTALL_YES_TIP2":"Пожалуйста, введите YES в текстовое поле ниже, чтобы подтвердить, что вы действительно хотите выполнить новую установку вместо обновления.",
|
"STR_INSTALL_YES_TIP2":"Введите «YES» в текстовом поле ниже, чтобы подтвердить, что вы действительно хотите выполнить новую установку, а не обновление.",
|
||||||
"STR_PART_VENTOY_FS":"Файловая система для Ventoy раздела",
|
"STR_PART_VENTOY_FS":"Файловая система для раздела Вентоя",
|
||||||
"STR_PART_FS":"Файловая система",
|
"STR_PART_FS":"Тип:",
|
||||||
"STR_PART_CLUSTER":"Размер кластера",
|
"STR_PART_CLUSTER":"Размер кластера:",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Системное значение по умолчанию",
|
"STR_PART_CLUSTER_DEFAULT":"Системное значение по умолчанию",
|
||||||
|
"STR_DONATE":"Пожертвовать",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1192,6 +1210,7 @@
|
|||||||
"STR_PART_FS":"ফাইল সিস্টেম",
|
"STR_PART_FS":"ফাইল সিস্টেম",
|
||||||
"STR_PART_CLUSTER":"ক্লাস্টারের আকার",
|
"STR_PART_CLUSTER":"ক্লাস্টারের আকার",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"সিস্টেমের ডিফল্ট মান",
|
"STR_PART_CLUSTER_DEFAULT":"সিস্টেমের ডিফল্ট মান",
|
||||||
|
"STR_DONATE":"দান করুন",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1255,6 +1274,7 @@
|
|||||||
"STR_PART_FS":"फाइल सिस्टम",
|
"STR_PART_FS":"फाइल सिस्टम",
|
||||||
"STR_PART_CLUSTER":"क्लस्टर साइज",
|
"STR_PART_CLUSTER":"क्लस्टर साइज",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"सिस्टम डिफ़ॉल्ट मान",
|
"STR_PART_CLUSTER_DEFAULT":"सिस्टम डिफ़ॉल्ट मान",
|
||||||
|
"STR_DONATE":"दान देना",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1275,13 +1295,13 @@
|
|||||||
"STR_STATUS":"Status - KLAAR",
|
"STR_STATUS":"Status - KLAAR",
|
||||||
"STR_INSTALL":"Installeren",
|
"STR_INSTALL":"Installeren",
|
||||||
"STR_UPDATE":"Bijwerken",
|
"STR_UPDATE":"Bijwerken",
|
||||||
"STR_UPDATE_TIP":"Upgraden is veilig: ISO-bestanden blijven ongewijzigd.#@Doorgaan?",
|
"STR_UPDATE_TIP":"Bijwerken is veilig: ISO-bestanden blijven ongewijzigd.#@Doorgaan?",
|
||||||
"STR_INSTALL_TIP":"Het apparaat wordt geformatteerd en alle gegevens gaan verloren.#@Doorgaan?",
|
"STR_INSTALL_TIP":"Het apparaat wordt geformatteerd en alle gegevens gaan verloren.#@Doorgaan?",
|
||||||
"STR_INSTALL_TIP2":"Het apparaat wordt geformatteerd en alle gegevens gaan verloren.#@Doorgaan? (Dubbelcheck)",
|
"STR_INSTALL_TIP2":"Het apparaat wordt geformatteerd en alle gegevens gaan verloren.#@Doorgaan? (Dubbelcheck)",
|
||||||
"STR_INSTALL_SUCCESS":"Gefeliciteerd!#@Ventoy is met succes op het apparaat geïnstalleerd.",
|
"STR_INSTALL_SUCCESS":"Gefeliciteerd!#@Ventoy is met succes op het apparaat geïnstalleerd.",
|
||||||
"STR_INSTALL_FAILED":"Er is een fout opgetreden tijdens de installatie. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
"STR_INSTALL_FAILED":"Er is een fout opgetreden tijdens de installatie. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details. Raadpleeg de FAQ op de officiële website als het blijft mislukken.",
|
||||||
"STR_UPDATE_SUCCESS":"Gefeliciteerd!#@Ventoy is met succes bijgewerkt op het apparaat.",
|
"STR_UPDATE_SUCCESS":"Gefeliciteerd!#@Ventoy is met succes bijgewerkt op het apparaat.",
|
||||||
"STR_UPDATE_FAILED":"Er is een fout opgetreden tijdens de update. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
"STR_UPDATE_FAILED":"Er is een fout opgetreden tijdens de update. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details. Raadpleeg de FAQ op de officiële website als het blijft mislukken.",
|
||||||
"STR_WAIT_PROCESS":"Ventoy is nog bezig, even geduld...",
|
"STR_WAIT_PROCESS":"Ventoy is nog bezig, even geduld...",
|
||||||
"STR_MENU_OPTION":"Opties",
|
"STR_MENU_OPTION":"Opties",
|
||||||
"STR_MENU_SECURE_BOOT":"Ondersteuning voor Secure Boot",
|
"STR_MENU_SECURE_BOOT":"Ondersteuning voor Secure Boot",
|
||||||
@@ -1294,7 +1314,7 @@
|
|||||||
"STR_CLEAR_SUCCESS":"Ventoy is met succes verwijderd van het apparaat.",
|
"STR_CLEAR_SUCCESS":"Ventoy is met succes verwijderd van het apparaat.",
|
||||||
"STR_CLEAR_FAILED":"Er is een fout opgetreden bij het verwijderen van Ventoy. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
"STR_CLEAR_FAILED":"Er is een fout opgetreden bij het verwijderen van Ventoy. U kunt het USB-apparaat opnieuw aansluiten en het nogmaals proberen. Controleer log.txt voor details.",
|
||||||
"STR_MENU_PART_STYLE":"Partitietabel",
|
"STR_MENU_PART_STYLE":"Partitietabel",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Selecteer GPT als partitietabel voor apparaten groter dan 2 TB",
|
"STR_DISK_2TB_MBR_ERROR":"Selecteer GPT voor apparaten groter dan 2 TB",
|
||||||
"STR_SHOW_ALL_DEV":"Alle apparaten weergeven",
|
"STR_SHOW_ALL_DEV":"Alle apparaten weergeven",
|
||||||
"STR_PART_ALIGN_4KB":"Partities uitlijnen met 4 KB",
|
"STR_PART_ALIGN_4KB":"Partities uitlijnen met 4 KB",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Communicatiefout:",
|
"STR_WEB_COMMUNICATION_ERR":"Communicatiefout:",
|
||||||
@@ -1302,7 +1322,7 @@
|
|||||||
"STR_WEB_REQUEST_TIMEOUT":"Communicatiefout: time-out van verzoek",
|
"STR_WEB_REQUEST_TIMEOUT":"Communicatiefout: time-out van verzoek",
|
||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Communicatiefout: service niet beschikbaar",
|
"STR_WEB_SERVICE_UNAVAILABLE":"Communicatiefout: service niet beschikbaar",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"Daemon-status bijgewerkt, probeer het later opnieuw.",
|
"STR_WEB_TOKEN_MISMATCH":"Daemon-status bijgewerkt, probeer het later opnieuw.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Service is bezet, probeer het later opnieuw.",
|
"STR_WEB_SERVICE_BUSY":"Service is bezet. Probeer het later opnieuw.",
|
||||||
"STR_MENU_VTSI_CREATE":"VTSI-bestand genereren",
|
"STR_MENU_VTSI_CREATE":"VTSI-bestand genereren",
|
||||||
"STR_VTSI_CREATE_TIP":"Deze keer wordt er niet naar het apparaat geschreven, maar wordt er alleen een VTSI-bestand gegenereerd#@Doorgaan?",
|
"STR_VTSI_CREATE_TIP":"Deze keer wordt er niet naar het apparaat geschreven, maar wordt er alleen een VTSI-bestand gegenereerd#@Doorgaan?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"VTSI-bestand met succes aangemaakt!#@U kunt Rufus(3.15+) gebruiken om het bestand naar het apparaat te schrijven om de installatie van Ventoy te voltooien.",
|
"STR_VTSI_CREATE_SUCCESS":"VTSI-bestand met succes aangemaakt!#@U kunt Rufus(3.15+) gebruiken om het bestand naar het apparaat te schrijven om de installatie van Ventoy te voltooien.",
|
||||||
@@ -1312,12 +1332,13 @@
|
|||||||
"STR_PART_RESIZE_SUCCESS":"Gefeliciteerd!#@De niet-destructieve installatie van Ventoy is met succes voltooid.",
|
"STR_PART_RESIZE_SUCCESS":"Gefeliciteerd!#@De niet-destructieve installatie van Ventoy is met succes voltooid.",
|
||||||
"STR_PART_RESIZE_FAILED":"Niet-destructieve installatie mislukt. Controleer log.txt voor details.",
|
"STR_PART_RESIZE_FAILED":"Niet-destructieve installatie mislukt. Controleer log.txt voor details.",
|
||||||
"STR_PART_RESIZE_UNSUPPORTED":"De niet-destructieve installatie van Ventoy is gestopt omdat aan sommige voorwaarden niet kan worden voldaan. Controleer log.txt voor details.",
|
"STR_PART_RESIZE_UNSUPPORTED":"De niet-destructieve installatie van Ventoy is gestopt omdat aan sommige voorwaarden niet kan worden voldaan. Controleer log.txt voor details.",
|
||||||
"STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
|
"STR_INSTALL_YES_TIP1":"Waarschuwing: alle gegevens zullen verloren gaan!",
|
||||||
"STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
|
"STR_INSTALL_YES_TIP2":"Vul in het onderstaande tekstvak YES in om te bevestigen dat u inderdaad een nieuwe installatie wilt uitvoeren in plaats van een upgrade.",
|
||||||
"STR_PART_VENTOY_FS":"Bestandssysteem voor Ventoy-partitie",
|
"STR_PART_VENTOY_FS":"Bestandssysteem voor Ventoy-partitie",
|
||||||
"STR_PART_FS":"Bestandssysteem",
|
"STR_PART_FS":"Bestandssysteem",
|
||||||
"STR_PART_CLUSTER":"Clustergrootte",
|
"STR_PART_CLUSTER":"Clustergrootte",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Standaardwaarde systeem",
|
"STR_PART_CLUSTER_DEFAULT":"Standaardwaarde systeem",
|
||||||
|
"STR_DONATE":"Doneer",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1381,6 +1402,7 @@
|
|||||||
"STR_PART_FS":"Sistemul de fișiere",
|
"STR_PART_FS":"Sistemul de fișiere",
|
||||||
"STR_PART_CLUSTER":"Dimensiunea clusterului",
|
"STR_PART_CLUSTER":"Dimensiunea clusterului",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valoarea implicită a sistemului",
|
"STR_PART_CLUSTER_DEFAULT":"Valoarea implicită a sistemului",
|
||||||
|
"STR_DONATE":"Donează",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1444,6 +1466,7 @@
|
|||||||
"STR_PART_FS":"ファイルシステム",
|
"STR_PART_FS":"ファイルシステム",
|
||||||
"STR_PART_CLUSTER":"クラスターサイズ",
|
"STR_PART_CLUSTER":"クラスターサイズ",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"システムのデフォルト値",
|
"STR_PART_CLUSTER_DEFAULT":"システムのデフォルト値",
|
||||||
|
"STR_DONATE":"寄付",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1507,6 +1530,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Dimensione del grappolo",
|
"STR_PART_CLUSTER":"Dimensione del grappolo",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valore predefinito di sistema",
|
"STR_PART_CLUSTER_DEFAULT":"Valore predefinito di sistema",
|
||||||
|
"STR_DONATE":"Donare",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1570,6 +1594,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Donirajte",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1633,10 +1658,11 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Adományoz",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Traditional Chinese(正體中文)",
|
"name":"Traditional Chinese(正體中文)",
|
||||||
"FontFamily":"新細明體",
|
"FontFamily":"新細明體",
|
||||||
"FontSize":14,
|
"FontSize":14,
|
||||||
@@ -1696,6 +1722,7 @@
|
|||||||
"STR_PART_FS":"文件系統",
|
"STR_PART_FS":"文件系統",
|
||||||
"STR_PART_CLUSTER":"簇的大小",
|
"STR_PART_CLUSTER":"簇的大小",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"系統默認值",
|
"STR_PART_CLUSTER_DEFAULT":"系統默認值",
|
||||||
|
"STR_DONATE":"捐助",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1759,6 +1786,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Donate",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1822,6 +1850,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Донирајте",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1885,6 +1914,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"บริจาค",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1948,6 +1978,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"donere",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2011,6 +2042,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"quyên tặng",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2074,6 +2106,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"paaukoti",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2137,6 +2170,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"донира",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2200,6 +2234,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"לִתְרוֹם",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2211,7 +2246,7 @@
|
|||||||
|
|
||||||
"STR_ERROR":"Erro",
|
"STR_ERROR":"Erro",
|
||||||
"STR_WARNING":"Aviso",
|
"STR_WARNING":"Aviso",
|
||||||
"STR_INFO":"Info",
|
"STR_INFO":"Informação",
|
||||||
"STR_INCORRECT_DIR":"Execute na pasta correta!",
|
"STR_INCORRECT_DIR":"Execute na pasta correta!",
|
||||||
"STR_INCORRECT_TREE_DIR":"Não me execute aqui, transfira o pacote de instalação e execute lá.",
|
"STR_INCORRECT_TREE_DIR":"Não me execute aqui, transfira o pacote de instalação e execute lá.",
|
||||||
"STR_DEVICE":"Dispositivo",
|
"STR_DEVICE":"Dispositivo",
|
||||||
@@ -2252,17 +2287,18 @@
|
|||||||
"STR_VTSI_CREATE_TIP":"Desta vez não irá gravar no dispositivo, mas apenas gerar um ficheiro VTSI#@Continuar?",
|
"STR_VTSI_CREATE_TIP":"Desta vez não irá gravar no dispositivo, mas apenas gerar um ficheiro VTSI#@Continuar?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"Ficheiro VTSI criado com sucesso!#@Pode utilizar o Rufus(3.15+) para o gravar no dispositivo de modo a completar a instalação do Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"Ficheiro VTSI criado com sucesso!#@Pode utilizar o Rufus(3.15+) para o gravar no dispositivo de modo a completar a instalação do Ventoy.",
|
||||||
"STR_VTSI_CREATE_FAILED":"Falha no ficheiro VTSI criado.",
|
"STR_VTSI_CREATE_FAILED":"Falha no ficheiro VTSI criado.",
|
||||||
"STR_MENU_PART_RESIZE":"Non-destructive Install",
|
"STR_MENU_PART_RESIZE":"Instalação não destrutiva",
|
||||||
"STR_PART_RESIZE_TIP":"Ventoy will try non-destructive installation if possible. #@Continue?",
|
"STR_PART_RESIZE_TIP":"O Ventoy tentará uma instalação não destrutiva, se possível. #@Continuar?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Congratulations!#@Ventoy non-destructive installation successfully finished.",
|
"STR_PART_RESIZE_SUCCESS":"Parabéns!#@Instalação não destrutiva do Ventoy concluída com sucesso.",
|
||||||
"STR_PART_RESIZE_FAILED":"Non-destructive installation failed, Check log.txt for details.",
|
"STR_PART_RESIZE_FAILED":"Falha na instalação não destrutiva. Leia o ficheiro log.txt para mais detalhes.",
|
||||||
"STR_PART_RESIZE_UNSUPPORTED":"Ventoy non-destructive installation stopped because some conditions cannot be met. Check log.txt for details.",
|
"STR_PART_RESIZE_UNSUPPORTED":"A instalação não destrutiva do Ventoy foi interrompida porque algumas condições não podem ser cumpridas. Leia o ficheiro log.txt para mais detalhes.",
|
||||||
"STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
|
"STR_INSTALL_YES_TIP1":"Aviso: Os dados serão perdidos!",
|
||||||
"STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
|
"STR_INSTALL_YES_TIP2":"Escreva YES na caixa de texto abaixo para confirmar que deseja de facto fazer uma nova instalação em vez de uma atualização.",
|
||||||
"STR_PART_VENTOY_FS":"File System For Ventoy Partition",
|
"STR_PART_VENTOY_FS":"Sistema de ficheiros para a partição Ventoy",
|
||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"Sistema de ficheiros",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Tamanho do cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"Valor predefinido do sistema",
|
||||||
|
"STR_DONATE":"Doar",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2326,6 +2362,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Menyumbangkan",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2389,6 +2426,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Donere",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2452,6 +2490,7 @@
|
|||||||
"STR_PART_FS":"Файлова система",
|
"STR_PART_FS":"Файлова система",
|
||||||
"STR_PART_CLUSTER":"Розмір кластера",
|
"STR_PART_CLUSTER":"Розмір кластера",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Системне значення за умовчанням",
|
"STR_PART_CLUSTER_DEFAULT":"Системне значення за умовчанням",
|
||||||
|
"STR_DONATE":"Пожертвуйте",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2515,9 +2554,11 @@
|
|||||||
"STR_PART_FS":"Σύστημα αρχείων",
|
"STR_PART_FS":"Σύστημα αρχείων",
|
||||||
"STR_PART_CLUSTER":"Μέγεθος συμπλέγματος",
|
"STR_PART_CLUSTER":"Μέγεθος συμπλέγματος",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Προεπιλεγμένη τιμή συστήματος",
|
"STR_PART_CLUSTER_DEFAULT":"Προεπιλεγμένη τιμή συστήματος",
|
||||||
|
"STR_DONATE":"Προσφέρω",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"name":"Swedish (Svenska)",
|
"name":"Swedish (Svenska)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
@@ -2578,6 +2619,7 @@
|
|||||||
"STR_PART_FS":"Filsystem",
|
"STR_PART_FS":"Filsystem",
|
||||||
"STR_PART_CLUSTER":"Klusterstorlek",
|
"STR_PART_CLUSTER":"Klusterstorlek",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Systemets standardvärde",
|
"STR_PART_CLUSTER_DEFAULT":"Systemets standardvärde",
|
||||||
|
"STR_DONATE":"Donera",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2641,6 +2683,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Donirajte",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2704,6 +2747,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Дарете",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2767,6 +2811,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Նվիրաբերել",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2830,6 +2875,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Lahjoittaa",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2893,6 +2939,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Doa",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -2956,6 +3003,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"Donar",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -3020,6 +3068,7 @@
|
|||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File System",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
|
"STR_DONATE":"შემოწირულობა",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -3083,6 +3132,7 @@
|
|||||||
"STR_PART_FS":"கோப்பு முறைமை",
|
"STR_PART_FS":"கோப்பு முறைமை",
|
||||||
"STR_PART_CLUSTER":"கொத்து அளவு",
|
"STR_PART_CLUSTER":"கொத்து அளவு",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"கணினி இயல்புநிலை மதிப்பு",
|
"STR_PART_CLUSTER_DEFAULT":"கணினி இயல்புநிலை மதிப்பு",
|
||||||
|
"STR_DONATE":"தானம் செய்",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -3106,9 +3156,9 @@
|
|||||||
"STR_UPDATE_TIP":"Абнаўленне бяспечна, ISO-файлы застануцца без змен. #@Працягнуць?",
|
"STR_UPDATE_TIP":"Абнаўленне бяспечна, ISO-файлы застануцца без змен. #@Працягнуць?",
|
||||||
"STR_INSTALL_TIP":"Дыск будзе адфарматаваны і ўсе дадзеныя будуць страчаныя. #@Працягнуць?",
|
"STR_INSTALL_TIP":"Дыск будзе адфарматаваны і ўсе дадзеныя будуць страчаныя. #@Працягнуць?",
|
||||||
"STR_INSTALL_TIP2":"Дыск будзе адфарматаваны і ўсе дадзеныя будуць страчаныя. #@ Вы сапраўды жадаеце працягнуць?",
|
"STR_INSTALL_TIP2":"Дыск будзе адфарматаваны і ўсе дадзеныя будуць страчаныя. #@ Вы сапраўды жадаеце працягнуць?",
|
||||||
"STR_INSTALL_SUCCESS":"Віншуем! # @ Ventoy быў паспяхова ўстаноўлены на прыладу.",
|
"STR_INSTALL_SUCCESS":"Віншуем! #@ Ventoy быў паспяхова ўстаноўлены на прыладу.",
|
||||||
"STR_INSTALL_FAILED":"Падчас усталёўкі Ventoy адбылася памылка. Перападлучыце прыладу і паспрабуйце зноў. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
"STR_INSTALL_FAILED":"Падчас усталёўкі Ventoy адбылася памылка. Перападлучыце прыладу і паспрабуйце зноў. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
||||||
"STR_UPDATE_SUCCESS":"Віншуем! # @ Ventoy быў паспяхова абноўлены на прыладзе.",
|
"STR_UPDATE_SUCCESS":"Віншуем! #@ Ventoy быў паспяхова абноўлены на прыладзе.",
|
||||||
"STR_UPDATE_FAILED":"Падчас абнаўлення Ventoy адбылася памылка. Перападлучыце прыладу і паспрабуйце зноў. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
"STR_UPDATE_FAILED":"Падчас абнаўлення Ventoy адбылася памылка. Перападлучыце прыладу і паспрабуйце зноў. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
||||||
"STR_WAIT_PROCESS":"Працэс запушчаны, калі ласка пачакайце...",
|
"STR_WAIT_PROCESS":"Працэс запушчаны, калі ласка пачакайце...",
|
||||||
"STR_MENU_OPTION":"Параметры",
|
"STR_MENU_OPTION":"Параметры",
|
||||||
@@ -3133,11 +3183,11 @@
|
|||||||
"STR_WEB_SERVICE_BUSY":"Служба занятая, паспрабуйце пазней.",
|
"STR_WEB_SERVICE_BUSY":"Служба занятая, паспрабуйце пазней.",
|
||||||
"STR_MENU_VTSI_CREATE":"Стварыць файл VTSI",
|
"STR_MENU_VTSI_CREATE":"Стварыць файл VTSI",
|
||||||
"STR_VTSI_CREATE_TIP":"На гэты раз Ventoy не будзе ўсталяваны на прыладу, а будзе толькі створаны файл VTSI#@Працягнуць?",
|
"STR_VTSI_CREATE_TIP":"На гэты раз Ventoy не будзе ўсталяваны на прыладу, а будзе толькі створаны файл VTSI#@Працягнуць?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"Файл VTSI створаны паспяхова! # @ Вы можаце выкарыстоўваць Rufus (3.15 +), каб запісаць яго на прыладу, для завяршэння ўстаноўкі Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"Файл VTSI створаны паспяхова! #@ Вы можаце выкарыстоўваць Rufus (3.15 +), каб запісаць яго на прыладу, для завяршэння ўстаноўкі Ventoy.",
|
||||||
"STR_VTSI_CREATE_FAILED":"Памылка стварэння файла VTSI.",
|
"STR_VTSI_CREATE_FAILED":"Памылка стварэння файла VTSI.",
|
||||||
"STR_MENU_PART_RESIZE":"Неразбуральная ўстаноўка",
|
"STR_MENU_PART_RESIZE":"Неразбуральная ўстаноўка",
|
||||||
"STR_PART_RESIZE_TIP":"Ventoy паспрабуе неразбуральную ўстаноўку, калі гэта магчыма. #@Працягнуць?",
|
"STR_PART_RESIZE_TIP":"Ventoy паспрабуе неразбуральную ўстаноўку, калі гэта магчыма. #@Працягнуць?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Віншуем! # @ Неразбуральная ўстаноўка Ventoy паспяхова завершана.",
|
"STR_PART_RESIZE_SUCCESS":"Віншуем! #@ Неразбуральная ўстаноўка Ventoy паспяхова завершана.",
|
||||||
"STR_PART_RESIZE_FAILED":"Не атрымалася выканаць неразбуральную ўстаноўку, праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
"STR_PART_RESIZE_FAILED":"Не атрымалася выканаць неразбуральную ўстаноўку, праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
||||||
"STR_PART_RESIZE_UNSUPPORTED":"Неразбуральная ўстаноўка Ventoy спынена, паколькі некаторыя ўмовы не могуць быць выкананы. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
"STR_PART_RESIZE_UNSUPPORTED":"Неразбуральная ўстаноўка Ventoy спынена, паколькі некаторыя ўмовы не могуць быць выкананы. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
||||||
"STR_INSTALL_YES_TIP1":"Папярэджанне: Дадзеныя будуць страчаныя!",
|
"STR_INSTALL_YES_TIP1":"Папярэджанне: Дадзеныя будуць страчаныя!",
|
||||||
@@ -3146,6 +3196,7 @@
|
|||||||
"STR_PART_FS":"Файлавая сістэма",
|
"STR_PART_FS":"Файлавая сістэма",
|
||||||
"STR_PART_CLUSTER":"Памер кластара",
|
"STR_PART_CLUSTER":"Памер кластара",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Сістэмнае значэнне па змаўчанні",
|
"STR_PART_CLUSTER_DEFAULT":"Сістэмнае значэнне па змаўчанні",
|
||||||
|
"STR_DONATE":"Ахвяраваць",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
}
|
}
|
||||||
|
@@ -27,7 +27,7 @@ Most type of OS supported(Windows/WinPE/Linux/Unix/ChromeOS/Vmware/Xen...) <br/>
|
|||||||
Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022, WinPE
|
Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022, WinPE
|
||||||
|
|
||||||
**Linux**
|
**Linux**
|
||||||
Debian, Ubuntu, CentOS(6/7/8/9), RHEL(6/7/8/9), Deepin, Fedora, Rocky Linux, AlmaLinux, EuroLinux(6/7/8/9), openEuler, OpenAnolis, SLES, openSUSE, MX Linux, Manjaro, Linux Mint, Endless OS, Elementary OS, Solus, Linx, Zorin, antiX, PClinuxOS, Arch, ArcoLinux, ArchLabs, BlackArch, Obarun, Artix Linux, Puppy Linux, Tails, Slax, Kali, Mageia, Slackware, Q4OS, Archman, Gentoo, Pentoo, NixOS, Kylin, openKylin, Ubuntu Kylin, KylinSec, Lubuntu, Xubuntu, Kubuntu, Ubuntu MATE, Ubuntu Budgie, Ubuntu Studio, Bluestar, OpenMandriva, ExTiX, Netrunner, ALT Linux, Nitrux, Peppermint, KDE neon, Linux Lite, Parrot OS, Qubes, Pop OS, ROSA, Void Linux, Star Linux, EndeavourOS, MakuluLinux, Voyager, Feren, ArchBang, LXLE, Knoppix, Calculate Linux, Clear Linux, Pure OS, Oracle Linux, Trident, Septor, Porteus, Devuan, GoboLinux, 4MLinux, Simplicity Linux, Zeroshell, Android-x86, netboot.xyz, Slitaz, SuperGrub2Disk, Proxmox VE, Kaspersky Rescue, SystemRescueCD, MemTest86, MemTest86+, MiniTool Partition Wizard, Parted Magic, veket, Sabayon, Scientific, alpine, ClearOS, CloneZilla, Berry Linux, Trisquel, Ataraxia Linux, Minimal Linux Live, BackBox Linux, Emmabuntüs, ESET SysRescue Live,Nova Linux, AV Linux, RoboLinux, NuTyX, IPFire, SELKS, ZStack, Enso Linux, Security Onion, Network Security Toolkit, Absolute Linux, TinyCore, Springdale Linux, Frost Linux, Shark Linux, LinuxFX, Snail Linux, Astra Linux, Namib Linux, Resilient Linux, Virage Linux, Blackweb Security OS, R-DriveImage, O-O.DiskImage, Macrium, ToOpPy LINUX, GNU Guix, YunoHost, foxclone, siduction, Adelie Linux, Elive, Pardus, CDlinux, AcademiX, Austrumi, Zenwalk, Anarchy, DuZeru, BigLinux, OpenMediaVault, Ubuntu DP, Exe GNU/Linux, 3CX Phone System, KANOTIX, Grml, Karoshi, PrimTux, ArchStrike, CAELinux, Cucumber, Fatdog, ForLEx, Hanthana, Kwort, MiniNo, Redcore, Runtu, Asianux, Clu Linux Live, Uruk, OB2D, BlueOnyx, Finnix, HamoniKR, Parabola, LinHES, LinuxConsole, BEE free, Untangle, Pearl, Thinstation, TurnKey, tuxtrans, Neptune, HefftorLinux, GeckoLinux, Mabox Linux, Zentyal, Maui, Reborn OS, SereneLinux , SkyWave Linux, Kaisen Linux, Regata OS, TROM-Jaro, DRBL Linux, Chalet OS, Chapeau, Desa OS, BlankOn, OpenMamba, Frugalware, Kibojoe Linux, Revenge OS, Tsurugi Linux, Drauger OS, Hash Linux, gNewSense, Ikki Boot, SteamOS, Hyperbola, VyOS, EasyNAS, SuperGamer, Live Raizo, Swift Linux, RebeccaBlackOS, Daphile, CRUX, Univention, Ufficio Zero, Rescuezilla, Phoenix OS, Garuda Linux, Mll, NethServer, OSGeoLive, Easy OS, Volumio, FreedomBox, paldo, UBOS, Recalbox, batocera, Lakka, LibreELEC, Pardus Topluluk, Pinguy, KolibriOS, Elastix, Arya, Omoikane, Omarine, Endian Firewall, Hamara, Rocks Cluster, MorpheusArch, Redo, Slackel, SME Server, APODIO, Smoothwall, Dragora, Linspire, Secure-K OS, Peach OSI, Photon, Plamo, SuperX, Bicom, Ploplinux, HP SPP, LliureX, Freespire, DietPi, BOSS, Webconverger, Lunar, TENS, Source Mage, RancherOS, T2, Vine, Pisi, blackPanther, mAid, Acronis, Active.Boot, AOMEI, Boot.Repair, CAINE, DaRT, EasyUEFI, R-Drive, PrimeOS, Avira Rescue System, bitdefender, Checkra1n Linux, Lenovo Diagnostics, Clover, Bliss-OS, Lenovo BIOS Update, Arcabit Rescue Disk, MiyoLinux, TeLOS, Kerio Control, RED OS, OpenWrt, MocaccinoOS, EasyStartup, Pyabr, Refracta, Eset SysRescue, Linpack Xtreme, Archcraft, NHVBOOT, pearOS, SeaTools, Easy Recovery Essentional, iKuai, StorageCraft SCRE, ZFSBootMenu, TROMjaro, BunsenLabs, Todo en Uno, ChallengerOS, Nobara, Holo, CachyOS, ......
|
Debian, Ubuntu, CentOS(6/7/8/9), RHEL(6/7/8/9), Deepin, Fedora, Rocky Linux, AlmaLinux, EuroLinux(6/7/8/9), openEuler, OpenAnolis, SLES, openSUSE, MX Linux, Manjaro, Linux Mint, Endless OS, Elementary OS, Solus, Linx, Zorin, antiX, PClinuxOS, Arch, ArcoLinux, ArchLabs, BlackArch, Obarun, Artix Linux, Puppy Linux, Tails, Slax, Kali, Mageia, Slackware, Q4OS, Archman, Gentoo, Pentoo, NixOS, Kylin, openKylin, Ubuntu Kylin, KylinSec, Lubuntu, Xubuntu, Kubuntu, Ubuntu MATE, Ubuntu Budgie, Ubuntu Studio, Bluestar, OpenMandriva, ExTiX, Netrunner, ALT Linux, Nitrux, Peppermint, KDE neon, Linux Lite, Parrot OS, Qubes, Pop OS, ROSA, Void Linux, Star Linux, EndeavourOS, MakuluLinux, Voyager, Feren, ArchBang, LXLE, Knoppix, Calculate Linux, Clear Linux, Pure OS, Oracle Linux, Trident, Septor, Porteus, Devuan, GoboLinux, 4MLinux, Simplicity Linux, Zeroshell, Android-x86, netboot.xyz, Slitaz, SuperGrub2Disk, Proxmox VE, Kaspersky Rescue, SystemRescueCD, MemTest86, MemTest86+, MiniTool Partition Wizard, Parted Magic, veket, Sabayon, Scientific, alpine, ClearOS, CloneZilla, Berry Linux, Trisquel, Ataraxia Linux, Minimal Linux Live, BackBox Linux, Emmabuntüs, ESET SysRescue Live,Nova Linux, AV Linux, RoboLinux, NuTyX, IPFire, SELKS, ZStack, Enso Linux, Security Onion, Network Security Toolkit, Absolute Linux, TinyCore, Springdale Linux, Frost Linux, Shark Linux, LinuxFX, Snail Linux, Astra Linux, Namib Linux, Resilient Linux, Virage Linux, Blackweb Security OS, R-DriveImage, O-O.DiskImage, Macrium, ToOpPy LINUX, GNU Guix, YunoHost, foxclone, siduction, Adelie Linux, Elive, Pardus, CDlinux, AcademiX, Austrumi, Zenwalk, Anarchy, DuZeru, BigLinux, OpenMediaVault, Ubuntu DP, Exe GNU/Linux, 3CX Phone System, KANOTIX, Grml, Karoshi, PrimTux, ArchStrike, CAELinux, Cucumber, Fatdog, ForLEx, Hanthana, Kwort, MiniNo, Redcore, Runtu, Asianux, Clu Linux Live, Uruk, OB2D, BlueOnyx, Finnix, HamoniKR, Parabola, LinHES, LinuxConsole, BEE free, Untangle, Pearl, Thinstation, TurnKey, tuxtrans, Neptune, HefftorLinux, GeckoLinux, Mabox Linux, Zentyal, Maui, Reborn OS, SereneLinux , SkyWave Linux, Kaisen Linux, Regata OS, TROM-Jaro, DRBL Linux, Chalet OS, Chapeau, Desa OS, BlankOn, OpenMamba, Frugalware, Kibojoe Linux, Revenge OS, Tsurugi Linux, Drauger OS, Hash Linux, gNewSense, Ikki Boot, SteamOS, Hyperbola, VyOS, EasyNAS, SuperGamer, Live Raizo, Swift Linux, RebeccaBlackOS, Daphile, CRUX, Univention, Ufficio Zero, Rescuezilla, Phoenix OS, Garuda Linux, Mll, NethServer, OSGeoLive, Easy OS, Volumio, FreedomBox, paldo, UBOS, Recalbox, batocera, Lakka, LibreELEC, Pardus Topluluk, Pinguy, KolibriOS, Elastix, Arya, Omoikane, Omarine, Endian Firewall, Hamara, Rocks Cluster, MorpheusArch, Redo, Slackel, SME Server, APODIO, Smoothwall, Dragora, Linspire, Secure-K OS, Peach OSI, Photon, Plamo, SuperX, Bicom, Ploplinux, HP SPP, LliureX, Freespire, DietPi, BOSS, Webconverger, Lunar, TENS, Source Mage, RancherOS, T2, Vine, Pisi, blackPanther, mAid, Acronis, Active.Boot, AOMEI, Boot.Repair, CAINE, DaRT, EasyUEFI, R-Drive, PrimeOS, Avira Rescue System, bitdefender, Checkra1n Linux, Lenovo Diagnostics, Clover, Bliss-OS, Lenovo BIOS Update, Arcabit Rescue Disk, MiyoLinux, TeLOS, Kerio Control, RED OS, OpenWrt, MocaccinoOS, EasyStartup, Pyabr, Refracta, Eset SysRescue, Linpack Xtreme, Archcraft, NHVBOOT, pearOS, SeaTools, Easy Recovery Essentional, iKuai, StorageCraft SCRE, ZFSBootMenu, TROMjaro, BunsenLabs, Todo en Uno, ChallengerOS, Nobara, Holo, CachyOS, Peux OS, ......
|
||||||
|
|
||||||
**Unix**
|
**Unix**
|
||||||
DragonFly FreeBSD pfSense GhostBSD FreeNAS TrueNAS XigmaNAS FuryBSD OPNsense HardenedBSD MidnightBSD ClonOS EmergencyBootKit
|
DragonFly FreeBSD pfSense GhostBSD FreeNAS TrueNAS XigmaNAS FuryBSD OPNsense HardenedBSD MidnightBSD ClonOS EmergencyBootKit
|
||||||
|
526
Ventoy2Disk/Ventoy2Disk/AlertSuppress.c
Normal file
526
Ventoy2Disk/Ventoy2Disk/AlertSuppress.c
Normal file
@@ -0,0 +1,526 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* AlertSuppress.c
|
||||||
|
*
|
||||||
|
* Copyright (c) 2022, longpanda <admin@ventoy.net>
|
||||||
|
* Copyright (c) 2011-2022 Pete Batard <pete@akeo.ie>
|
||||||
|
*
|
||||||
|
* 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 <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <Windows.h>
|
||||||
|
#include <winternl.h>
|
||||||
|
#include <commctrl.h>
|
||||||
|
#include <initguid.h>
|
||||||
|
#include <vds.h>
|
||||||
|
#include "Ventoy2Disk.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define sfree(p) do {if (p != NULL) {free((void*)(p)); p = NULL;}} while(0)
|
||||||
|
#define wconvert(p) wchar_t* w ## p = utf8_to_wchar(p)
|
||||||
|
#define walloc(p, size) wchar_t* w ## p = (p == NULL)?NULL:(wchar_t*)calloc(size, sizeof(wchar_t))
|
||||||
|
#define wfree(p) sfree(w ## p)
|
||||||
|
|
||||||
|
#define static_strcpy(dst, src) strcpy_s(dst, sizeof(dst), src)
|
||||||
|
#define static_strcat(dst, src) strcat_s(dst, sizeof(dst), src)
|
||||||
|
|
||||||
|
|
||||||
|
#define wchar_to_utf8_no_alloc(wsrc, dest, dest_size) \
|
||||||
|
WideCharToMultiByte(CP_UTF8, 0, wsrc, -1, dest, dest_size, NULL, NULL)
|
||||||
|
#define utf8_to_wchar_no_alloc(src, wdest, wdest_size) \
|
||||||
|
MultiByteToWideChar(CP_UTF8, 0, src, -1, wdest, wdest_size)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Converts an UTF8 string to UTF-16 (allocate returned string)
|
||||||
|
* Returns NULL on error
|
||||||
|
*/
|
||||||
|
static __inline wchar_t* utf8_to_wchar(const char* str)
|
||||||
|
{
|
||||||
|
int size = 0;
|
||||||
|
wchar_t* wstr = NULL;
|
||||||
|
|
||||||
|
if (str == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// Convert the empty string too
|
||||||
|
if (str[0] == 0)
|
||||||
|
return (wchar_t*)calloc(1, sizeof(wchar_t));
|
||||||
|
|
||||||
|
// Find out the size we need to allocate for our converted string
|
||||||
|
size = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
|
||||||
|
if (size <= 1) // An empty string would be size 1
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if ((wstr = (wchar_t*)calloc(size, sizeof(wchar_t))) == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (utf8_to_wchar_no_alloc(str, wstr, size) != size) {
|
||||||
|
sfree(wstr);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return wstr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char g_FormatDiskTitle[256];
|
||||||
|
static char g_FormatDiskButton[256];
|
||||||
|
|
||||||
|
static char g_LocNotAvaliableTitle[256]; //Location is not available
|
||||||
|
static char g_InsertDiskTitle[256]; // Insert disk
|
||||||
|
|
||||||
|
static char system_dir[MAX_PATH], sysnative_dir[MAX_PATH];
|
||||||
|
|
||||||
|
static HWINEVENTHOOK ap_weh = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
static __inline UINT GetSystemDirectoryU(char* lpBuffer, UINT uSize)
|
||||||
|
{
|
||||||
|
UINT ret = 0, err = ERROR_INVALID_DATA;
|
||||||
|
// coverity[returned_null]
|
||||||
|
walloc(lpBuffer, uSize);
|
||||||
|
ret = GetSystemDirectoryW(wlpBuffer, uSize);
|
||||||
|
err = GetLastError();
|
||||||
|
if ((ret != 0) && ((ret = wchar_to_utf8_no_alloc(wlpBuffer, lpBuffer, uSize)) == 0)) {
|
||||||
|
err = GetLastError();
|
||||||
|
}
|
||||||
|
wfree(lpBuffer);
|
||||||
|
SetLastError(err);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static char* ToLocaleName(DWORD lang_id)
|
||||||
|
{
|
||||||
|
static char mui_str[LOCALE_NAME_MAX_LENGTH];
|
||||||
|
wchar_t wmui_str[LOCALE_NAME_MAX_LENGTH];
|
||||||
|
|
||||||
|
if (LCIDToLocaleName(lang_id, wmui_str, LOCALE_NAME_MAX_LENGTH, 0) > 0) {
|
||||||
|
wchar_to_utf8_no_alloc(wmui_str, mui_str, LOCALE_NAME_MAX_LENGTH);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
static_strcpy(mui_str, "en-US");
|
||||||
|
}
|
||||||
|
return mui_str;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline int LoadStringU(HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, int nBufferMax)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
DWORD err = ERROR_INVALID_DATA;
|
||||||
|
if (nBufferMax == 0) {
|
||||||
|
// read-only pointer to resource mode is not supported
|
||||||
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
// coverity[returned_null]
|
||||||
|
walloc(lpBuffer, nBufferMax);
|
||||||
|
ret = LoadStringW(hInstance, uID, wlpBuffer, nBufferMax);
|
||||||
|
err = GetLastError();
|
||||||
|
if ((ret > 0) && ((ret = wchar_to_utf8_no_alloc(wlpBuffer, lpBuffer, nBufferMax)) == 0)) {
|
||||||
|
err = GetLastError();
|
||||||
|
}
|
||||||
|
wfree(lpBuffer);
|
||||||
|
SetLastError(err);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* typedefs for the function prototypes. Use the something like:
|
||||||
|
* PF_DECL(FormatEx);
|
||||||
|
* which translates to:
|
||||||
|
* FormatEx_t pfFormatEx = NULL;
|
||||||
|
* in your code, to declare the entrypoint and then use:
|
||||||
|
* PF_INIT(FormatEx, Fmifs);
|
||||||
|
* which translates to:
|
||||||
|
* pfFormatEx = (FormatEx_t) GetProcAddress(GetDLLHandle("fmifs"), "FormatEx");
|
||||||
|
* to make it accessible.
|
||||||
|
*/
|
||||||
|
#define MAX_LIBRARY_HANDLES 64
|
||||||
|
extern HMODULE OpenedLibrariesHandle[MAX_LIBRARY_HANDLES];
|
||||||
|
extern UINT16 OpenedLibrariesHandleSize;
|
||||||
|
#define OPENED_LIBRARIES_VARS HMODULE OpenedLibrariesHandle[MAX_LIBRARY_HANDLES]; uint16_t OpenedLibrariesHandleSize = 0
|
||||||
|
#define CLOSE_OPENED_LIBRARIES while(OpenedLibrariesHandleSize > 0) FreeLibrary(OpenedLibrariesHandle[--OpenedLibrariesHandleSize])
|
||||||
|
|
||||||
|
static __inline HMODULE GetLibraryHandle(char* szLibraryName) {
|
||||||
|
HMODULE h = NULL;
|
||||||
|
wchar_t* wszLibraryName = NULL;
|
||||||
|
int size;
|
||||||
|
if (szLibraryName == NULL || szLibraryName[0] == 0)
|
||||||
|
goto out;
|
||||||
|
size = MultiByteToWideChar(CP_UTF8, 0, szLibraryName, -1, NULL, 0);
|
||||||
|
if ((size <= 1) || ((wszLibraryName = (wchar_t*)calloc(size, sizeof(wchar_t))) == NULL) ||
|
||||||
|
(MultiByteToWideChar(CP_UTF8, 0, szLibraryName, -1, wszLibraryName, size) != size))
|
||||||
|
goto out;
|
||||||
|
// If the library is already opened, just return a handle (that doesn't need to be freed)
|
||||||
|
if ((h = GetModuleHandleW(wszLibraryName)) != NULL)
|
||||||
|
goto out;
|
||||||
|
// Sanity check
|
||||||
|
if (OpenedLibrariesHandleSize >= MAX_LIBRARY_HANDLES) {
|
||||||
|
Log("Error: MAX_LIBRARY_HANDLES is too small");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
h = LoadLibraryExW(wszLibraryName, NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
|
||||||
|
// Some Windows 7 platforms (most likely the ones missing KB2533623 per the
|
||||||
|
// official LoadLibraryEx doc) can return ERROR_INVALID_PARAMETER when using
|
||||||
|
// the Ex() version. If that's the case, fallback to using LoadLibraryW().
|
||||||
|
if ((h == NULL) && (SCODE_CODE(GetLastError()) == ERROR_INVALID_PARAMETER))
|
||||||
|
h = LoadLibraryW(wszLibraryName);
|
||||||
|
if (h != NULL)
|
||||||
|
OpenedLibrariesHandle[OpenedLibrariesHandleSize++] = h;
|
||||||
|
else
|
||||||
|
Log("Unable to load '%S.dll': %u", wszLibraryName, LASTERR);
|
||||||
|
out:
|
||||||
|
free(wszLibraryName);
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define PF_TYPE(api, ret, proc, args) typedef ret (api *proc##_t)args
|
||||||
|
#define PF_DECL(proc) static proc##_t pf##proc = NULL
|
||||||
|
#define PF_TYPE_DECL(api, ret, proc, args) PF_TYPE(api, ret, proc, args); PF_DECL(proc)
|
||||||
|
#define PF_INIT(proc, name) if (pf##proc == NULL) pf##proc = \
|
||||||
|
(proc##_t) GetProcAddress(GetLibraryHandle(#name), #proc)
|
||||||
|
#define PF_INIT_OR_OUT(proc, name) do {PF_INIT(proc, name); \
|
||||||
|
if (pf##proc == NULL) {Log("Unable to locate %s() in '%s.dll': %u", \
|
||||||
|
#proc, #name, LASTERR); goto out;} } while(0)
|
||||||
|
#define PF_INIT_OR_SET_STATUS(proc, name) do {PF_INIT(proc, name); \
|
||||||
|
if ((pf##proc == NULL) && (NT_SUCCESS(status))) status = STATUS_NOT_IMPLEMENTED; } while(0)
|
||||||
|
|
||||||
|
static BOOL is_x64(void)
|
||||||
|
{
|
||||||
|
BOOL ret = FALSE;
|
||||||
|
PF_TYPE_DECL(WINAPI, BOOL, IsWow64Process, (HANDLE, PBOOL));
|
||||||
|
// Detect if we're running a 32 or 64 bit system
|
||||||
|
if (sizeof(uintptr_t) < 8) {
|
||||||
|
PF_INIT(IsWow64Process, Kernel32);
|
||||||
|
if (pfIsWow64Process != NULL) {
|
||||||
|
(*pfIsWow64Process)(GetCurrentProcess(), &ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static __inline UINT GetSystemWindowsDirectoryU(char* lpBuffer, UINT uSize)
|
||||||
|
{
|
||||||
|
UINT ret = 0, err = ERROR_INVALID_DATA;
|
||||||
|
// coverity[returned_null]
|
||||||
|
walloc(lpBuffer, uSize);
|
||||||
|
ret = GetSystemWindowsDirectoryW(wlpBuffer, uSize);
|
||||||
|
err = GetLastError();
|
||||||
|
if ((ret != 0) && ((ret = wchar_to_utf8_no_alloc(wlpBuffer, lpBuffer, uSize)) == 0)) {
|
||||||
|
err = GetLastError();
|
||||||
|
}
|
||||||
|
wfree(lpBuffer);
|
||||||
|
SetLastError(err);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline HMODULE LoadLibraryU(LPCSTR lpFileName)
|
||||||
|
{
|
||||||
|
HMODULE ret;
|
||||||
|
DWORD err = ERROR_INVALID_DATA;
|
||||||
|
wconvert(lpFileName);
|
||||||
|
ret = LoadLibraryW(wlpFileName);
|
||||||
|
err = GetLastError();
|
||||||
|
wfree(lpFileName);
|
||||||
|
SetLastError(err);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
typedef struct {
|
||||||
|
WORD dlgVer;
|
||||||
|
WORD signature;
|
||||||
|
DWORD helpID;
|
||||||
|
DWORD exStyle;
|
||||||
|
DWORD style;
|
||||||
|
WORD cDlgItems;
|
||||||
|
short x;
|
||||||
|
short y;
|
||||||
|
short cx;
|
||||||
|
short cy;
|
||||||
|
//sz_Or_Ord menu;
|
||||||
|
//sz_Or_Ord windowClass;
|
||||||
|
//WCHAR title[titleLen];
|
||||||
|
//WORD pointsize;
|
||||||
|
//WORD weight;
|
||||||
|
//BYTE italic;
|
||||||
|
//BYTE charset;
|
||||||
|
//WCHAR typeface[stringLen];
|
||||||
|
} DLGTEMPLATEEX;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
|
static BOOL LoadDialogCaption(HMODULE hMui, DWORD ID, CHAR* title, DWORD len)
|
||||||
|
{
|
||||||
|
BOOL bRet = FALSE;
|
||||||
|
int WordNum = 0;
|
||||||
|
HRSRC hDlg = NULL;
|
||||||
|
DLGTEMPLATEEX* pDlgTempEx = NULL;
|
||||||
|
HGLOBAL hTemplate = NULL;
|
||||||
|
WORD* pWordData = NULL;
|
||||||
|
|
||||||
|
hDlg = FindResource(hMui, MAKEINTRESOURCE(1024), RT_DIALOG);
|
||||||
|
if (hDlg)
|
||||||
|
{
|
||||||
|
hTemplate = LoadResource(hMui, hDlg);
|
||||||
|
if (hTemplate)
|
||||||
|
{
|
||||||
|
pDlgTempEx = (DLGTEMPLATEEX*)LockResource(hTemplate);
|
||||||
|
if (pDlgTempEx)
|
||||||
|
{
|
||||||
|
if (pDlgTempEx->signature != 0xFFFF)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
pWordData = (WORD *)(pDlgTempEx + 1);
|
||||||
|
|
||||||
|
//skip menu
|
||||||
|
if (*pWordData == 0x0000)
|
||||||
|
{
|
||||||
|
pWordData += 1;
|
||||||
|
}
|
||||||
|
else if (*pWordData == 0xFFFF)
|
||||||
|
{
|
||||||
|
pWordData += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while (*pWordData++)
|
||||||
|
{
|
||||||
|
;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//skip windowClass
|
||||||
|
if (*pWordData == 0x0000)
|
||||||
|
{
|
||||||
|
pWordData += 1;
|
||||||
|
}
|
||||||
|
else if (*pWordData == 0xFFFF)
|
||||||
|
{
|
||||||
|
pWordData += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while (*pWordData++)
|
||||||
|
{
|
||||||
|
;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
wchar_to_utf8_no_alloc(pWordData, title, len);
|
||||||
|
bRet = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return bRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL SetAlertPromptMessages(void)
|
||||||
|
{
|
||||||
|
HMODULE hMui;
|
||||||
|
char mui_path[MAX_PATH];
|
||||||
|
|
||||||
|
if (GetSystemDirectoryU(system_dir, sizeof(system_dir)) == 0) {
|
||||||
|
Log("Could not get system directory: %u", LASTERR);
|
||||||
|
static_strcpy(system_dir, "C:\\Windows\\System32");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Construct Sysnative ourselves as there is no GetSysnativeDirectory() call
|
||||||
|
// By default (64bit app running on 64 bit OS or 32 bit app running on 32 bit OS)
|
||||||
|
// Sysnative and System32 are the same
|
||||||
|
static_strcpy(sysnative_dir, system_dir);
|
||||||
|
// But if the app is 32 bit and the OS is 64 bit, Sysnative must differ from System32
|
||||||
|
#if (defined(VTARCH_X86) || defined(VTARCH_ARM))
|
||||||
|
if (is_x64()) {
|
||||||
|
if (GetSystemWindowsDirectoryU(sysnative_dir, sizeof(sysnative_dir)) == 0) {
|
||||||
|
Log("Could not get Windows directory: %u", LASTERR);
|
||||||
|
static_strcpy(sysnative_dir, "C:\\Windows");
|
||||||
|
}
|
||||||
|
static_strcat(sysnative_dir, "\\Sysnative");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Log("system_dir=<%s>", system_dir);
|
||||||
|
Log("sysnative_dir=<%s>", sysnative_dir);
|
||||||
|
|
||||||
|
sprintf_s(mui_path, MAX_PATH, "%s\\%s\\shell32.dll.mui", sysnative_dir, ToLocaleName(GetUserDefaultUILanguage()));
|
||||||
|
|
||||||
|
hMui = LoadLibraryU(mui_path);
|
||||||
|
if (hMui)
|
||||||
|
{
|
||||||
|
Log("LoadLibrary shell32.dll.mui SUCCESS");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log("LoadLibrary shell32.dll.mui FAILED");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// String Table:
|
||||||
|
// 4097 = "You need to format the disk in drive %c: before you can use it." (dialog text)
|
||||||
|
// 4125 = "Microsoft Windows" (dialog title)
|
||||||
|
// 4126 = "Format disk" (button)
|
||||||
|
if (LoadStringU(hMui, 4125, g_FormatDiskTitle, sizeof(g_FormatDiskTitle)) <= 0) {
|
||||||
|
static_strcpy(g_FormatDiskTitle, "Microsoft Windows");
|
||||||
|
Log("Warning: Could not locate localized format prompt title string in '%s': %u", mui_path, LASTERR);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LoadStringU(hMui, 4126, g_FormatDiskButton, sizeof(g_FormatDiskButton)) <= 0) {
|
||||||
|
static_strcpy(g_FormatDiskButton, "Format disk");
|
||||||
|
Log("Warning: Could not locate localized format prompt button string in '%s': %u", mui_path, LASTERR);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 32964 = "Location is not available"
|
||||||
|
if (LoadStringU(hMui, 32964, g_LocNotAvaliableTitle, sizeof(g_LocNotAvaliableTitle)) <= 0) {
|
||||||
|
static_strcpy(g_LocNotAvaliableTitle, "Location is not available");
|
||||||
|
Log("Warning: Could not locate localized format prompt title string in '%s': %u", mui_path, LASTERR);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!LoadDialogCaption(hMui, 1024, g_InsertDiskTitle, sizeof(g_InsertDiskTitle)))
|
||||||
|
{
|
||||||
|
static_strcpy(g_InsertDiskTitle, "Insert disk");
|
||||||
|
Log("Warning: Could not locate insert disk title string in '%s': %u", mui_path, LASTERR);
|
||||||
|
}
|
||||||
|
|
||||||
|
FreeLibrary(hMui);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline int GetWindowTextU(HWND hWnd, char* lpString, int nMaxCount)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
DWORD err = ERROR_INVALID_DATA;
|
||||||
|
if (nMaxCount < 0)
|
||||||
|
return 0;
|
||||||
|
// Handle the empty string as GetWindowTextW() returns 0 then
|
||||||
|
if ((lpString != NULL) && (nMaxCount > 0))
|
||||||
|
lpString[0] = 0;
|
||||||
|
// coverity[returned_null]
|
||||||
|
walloc(lpString, nMaxCount);
|
||||||
|
ret = GetWindowTextW(hWnd, wlpString, nMaxCount);
|
||||||
|
err = GetLastError();
|
||||||
|
// coverity[var_deref_model]
|
||||||
|
if ((ret != 0) && ((ret = wchar_to_utf8_no_alloc(wlpString, lpString, nMaxCount)) == 0)) {
|
||||||
|
err = GetLastError();
|
||||||
|
}
|
||||||
|
wfree(lpString);
|
||||||
|
lpString[nMaxCount - 1] = 0;
|
||||||
|
SetLastError(err);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following function calls are used to automatically detect and close the native
|
||||||
|
* Windows format prompt "You must format the disk in drive X:". To do that, we use
|
||||||
|
* an event hook that gets triggered whenever a window is placed in the foreground.
|
||||||
|
* In that hook, we look for a dialog that has style WS_POPUPWINDOW and has the relevant
|
||||||
|
* title. However, because the title in itself is too generic (the expectation is that
|
||||||
|
* it will be "Microsoft Windows") we also enumerate all the child controls from that
|
||||||
|
* prompt, using another callback, until we find one that contains the text we expect
|
||||||
|
* for the "Format disk" button.
|
||||||
|
* Oh, and since all of these strings are localized, we must first pick them up from
|
||||||
|
* the relevant mui's.
|
||||||
|
*/
|
||||||
|
static BOOL CALLBACK AlertPromptCallback(HWND hWnd, LPARAM lParam)
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
BOOL* found = (BOOL*)lParam;
|
||||||
|
|
||||||
|
if (GetWindowTextU(hWnd, str, sizeof(str)) == 0)
|
||||||
|
return TRUE;
|
||||||
|
if (strcmp(str, g_FormatDiskButton) == 0)
|
||||||
|
*found = TRUE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static volatile BOOL g_AlertPromptHookEnable = FALSE;
|
||||||
|
|
||||||
|
void SetAlertPromptHookEnable(BOOL enable)
|
||||||
|
{
|
||||||
|
g_AlertPromptHookEnable = enable;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void CALLBACK AlertPromptHook(HWINEVENTHOOK hWinEventHook, DWORD Event, HWND hWnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime)
|
||||||
|
{
|
||||||
|
char str[128];
|
||||||
|
BOOL found;
|
||||||
|
|
||||||
|
if (Event != EVENT_SYSTEM_FOREGROUND)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!g_AlertPromptHookEnable)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//GetWindowTextU(hWnd, str, sizeof(str));
|
||||||
|
//Log("###### EVENT_SYSTEM_FOREGROUND Windows prompt <%s> #######", str);
|
||||||
|
|
||||||
|
if (GetWindowLongPtr(hWnd, GWL_STYLE) & WS_POPUPWINDOW) {
|
||||||
|
str[0] = 0;
|
||||||
|
GetWindowTextU(hWnd, str, sizeof(str));
|
||||||
|
if (strcmp(str, g_FormatDiskTitle) == 0)
|
||||||
|
{
|
||||||
|
found = FALSE;
|
||||||
|
EnumChildWindows(hWnd, AlertPromptCallback, (LPARAM)&found);
|
||||||
|
if (found)
|
||||||
|
{
|
||||||
|
SendMessage(hWnd, WM_COMMAND, (WPARAM)IDCANCEL, (LPARAM)0);
|
||||||
|
Log("###### Detect 'Windows format' prompt, now close it. #######");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (strcmp(str, g_LocNotAvaliableTitle) == 0)
|
||||||
|
{
|
||||||
|
SendMessage(hWnd, WM_COMMAND, (WPARAM)IDCANCEL, (LPARAM)0);
|
||||||
|
Log("###### Detect 'Location is not available' prompt, now close it. #######");
|
||||||
|
}
|
||||||
|
else if (strcmp(str, g_InsertDiskTitle) == 0)
|
||||||
|
{
|
||||||
|
SendMessage(hWnd, WM_COMMAND, (WPARAM)IDCANCEL, (LPARAM)0);
|
||||||
|
Log("###### Detect 'Insert disk' prompt, now close it. #######");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL SetAlertPromptHook(void)
|
||||||
|
{
|
||||||
|
if (ap_weh != NULL)
|
||||||
|
return TRUE; // No need to set again if active
|
||||||
|
ap_weh = SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, NULL,
|
||||||
|
AlertPromptHook, 0, 0, WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS);
|
||||||
|
return (ap_weh != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL AlertSuppressInit(void)
|
||||||
|
{
|
||||||
|
BOOL bRet;
|
||||||
|
|
||||||
|
SetAlertPromptMessages();
|
||||||
|
|
||||||
|
bRet = SetAlertPromptHook();
|
||||||
|
Log("SetAlertPromptHook %s", bRet ? "SUCCESS" : "FAILED");
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
@@ -2,6 +2,7 @@
|
|||||||
* DiskService.c
|
* DiskService.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2021, longpanda <admin@ventoy.net>
|
* Copyright (c) 2021, longpanda <admin@ventoy.net>
|
||||||
|
* Copyright (c) 2011-2021 Pete Batard <pete@akeo.ie>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License as
|
* modify it under the terms of the GNU General Public License as
|
||||||
@@ -26,6 +27,22 @@
|
|||||||
#include "Ventoy2Disk.h"
|
#include "Ventoy2Disk.h"
|
||||||
#include "DiskService.h"
|
#include "DiskService.h"
|
||||||
|
|
||||||
|
static CHAR g_WindowsDir[MAX_PATH] = {0};
|
||||||
|
|
||||||
|
const CHAR* DISK_GetWindowsDir(void)
|
||||||
|
{
|
||||||
|
if (g_WindowsDir[0] == 0)
|
||||||
|
{
|
||||||
|
GetEnvironmentVariableA("SystemRoot", g_WindowsDir, MAX_PATH);
|
||||||
|
if (g_WindowsDir[0] == 0)
|
||||||
|
{
|
||||||
|
sprintf_s(g_WindowsDir, MAX_PATH, "C:\\Windows");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return g_WindowsDir;
|
||||||
|
}
|
||||||
|
|
||||||
BOOL DISK_CleanDisk(int DriveIndex)
|
BOOL DISK_CleanDisk(int DriveIndex)
|
||||||
{
|
{
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
@@ -118,29 +135,51 @@ typedef struct
|
|||||||
PCHAR Output;
|
PCHAR Output;
|
||||||
} TEXTOUTPUT, * PTEXTOUTPUT;
|
} TEXTOUTPUT, * PTEXTOUTPUT;
|
||||||
|
|
||||||
// Callback command types
|
/* Callback command types (some errorcode were filled from HPUSBFW V2.2.3 and their
|
||||||
typedef enum
|
designation from docs.microsoft.com/windows/win32/api/vds/nf-vds-ivdsvolumemf2-formatex */
|
||||||
{
|
typedef enum {
|
||||||
PROGRESS,
|
FCC_PROGRESS,
|
||||||
DONEWITHSTRUCTURE,
|
FCC_DONE_WITH_STRUCTURE,
|
||||||
UNKNOWN2,
|
FCC_UNKNOWN2,
|
||||||
UNKNOWN3,
|
FCC_INCOMPATIBLE_FILE_SYSTEM,
|
||||||
UNKNOWN4,
|
FCC_UNKNOWN4,
|
||||||
UNKNOWN5,
|
FCC_UNKNOWN5,
|
||||||
INSUFFICIENTRIGHTS,
|
FCC_ACCESS_DENIED,
|
||||||
UNKNOWN7,
|
FCC_MEDIA_WRITE_PROTECTED,
|
||||||
UNKNOWN8,
|
FCC_VOLUME_IN_USE,
|
||||||
UNKNOWN9,
|
FCC_CANT_QUICK_FORMAT,
|
||||||
UNKNOWNA,
|
FCC_UNKNOWNA,
|
||||||
DONE,
|
FCC_DONE,
|
||||||
UNKNOWNC,
|
FCC_BAD_LABEL,
|
||||||
UNKNOWND,
|
FCC_UNKNOWND,
|
||||||
OUTPUT,
|
FCC_OUTPUT,
|
||||||
STRUCTUREPROGRESS
|
FCC_STRUCTURE_PROGRESS,
|
||||||
} CALLBACKCOMMAND;
|
FCC_CLUSTER_SIZE_TOO_SMALL,
|
||||||
|
FCC_CLUSTER_SIZE_TOO_BIG,
|
||||||
|
FCC_VOLUME_TOO_SMALL,
|
||||||
|
FCC_VOLUME_TOO_BIG,
|
||||||
|
FCC_NO_MEDIA_IN_DRIVE,
|
||||||
|
FCC_UNKNOWN15,
|
||||||
|
FCC_UNKNOWN16,
|
||||||
|
FCC_UNKNOWN17,
|
||||||
|
FCC_DEVICE_NOT_READY,
|
||||||
|
FCC_CHECKDISK_PROGRESS,
|
||||||
|
FCC_UNKNOWN1A,
|
||||||
|
FCC_UNKNOWN1B,
|
||||||
|
FCC_UNKNOWN1C,
|
||||||
|
FCC_UNKNOWN1D,
|
||||||
|
FCC_UNKNOWN1E,
|
||||||
|
FCC_UNKNOWN1F,
|
||||||
|
FCC_READ_ONLY_MODE,
|
||||||
|
FCC_UNKNOWN21,
|
||||||
|
FCC_UNKNOWN22,
|
||||||
|
FCC_UNKNOWN23,
|
||||||
|
FCC_UNKNOWN24,
|
||||||
|
FCC_ALIGNMENT_VIOLATION,
|
||||||
|
} FILE_SYSTEM_CALLBACK_COMMAND;
|
||||||
|
|
||||||
// FMIFS callback definition
|
// FMIFS callback definition
|
||||||
typedef BOOLEAN(__stdcall* PFMIFSCALLBACK)(CALLBACKCOMMAND Command, DWORD SubAction, PVOID ActionInfo);
|
typedef BOOLEAN(__stdcall* PFMIFSCALLBACK)(FILE_SYSTEM_CALLBACK_COMMAND Command, DWORD SubAction, PVOID ActionInfo);
|
||||||
|
|
||||||
|
|
||||||
// Chkdsk command in FMIFS
|
// Chkdsk command in FMIFS
|
||||||
@@ -167,36 +206,87 @@ typedef VOID(__stdcall* PFORMATEX)(PWCHAR DriveRoot,
|
|||||||
DWORD ClusterSize,
|
DWORD ClusterSize,
|
||||||
PFMIFSCALLBACK Callback);
|
PFMIFSCALLBACK Callback);
|
||||||
|
|
||||||
|
#define FP_FORCE 0x00000001
|
||||||
|
#define FP_QUICK 0x00000002
|
||||||
|
#define FP_COMPRESSION 0x00000004
|
||||||
|
#define FP_DUPLICATE_METADATA 0x00000008
|
||||||
|
#define FP_LARGE_FAT32 0x00010000
|
||||||
|
#define FP_NO_BOOT 0x00020000
|
||||||
|
#define FP_CREATE_PERSISTENCE_CONF 0x00040000
|
||||||
|
|
||||||
// FormatExCallback
|
// FormatExCallback
|
||||||
static int g_dll_format_error = 0;
|
static int g_dll_format_error = 0;
|
||||||
BOOLEAN __stdcall FormatExCallback(CALLBACKCOMMAND Command, DWORD Modifier, PVOID Argument)
|
BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command, DWORD Modifier, PVOID Argument)
|
||||||
{
|
{
|
||||||
PDWORD percent;
|
PDWORD percent;
|
||||||
PBOOLEAN status;
|
PBOOLEAN status;
|
||||||
|
|
||||||
switch (Command)
|
switch (Command) {
|
||||||
{
|
case FCC_PROGRESS:
|
||||||
case PROGRESS:
|
|
||||||
percent = (PDWORD)Argument;
|
percent = (PDWORD)Argument;
|
||||||
Log("Format percent: %d \n", *percent);
|
Log("Format percent: %u%%", *percent);
|
||||||
break;
|
break;
|
||||||
|
case FCC_STRUCTURE_PROGRESS: // No progress on quick format
|
||||||
case OUTPUT:
|
Log("Creating file system...");
|
||||||
break;
|
break;
|
||||||
|
case FCC_DONE:
|
||||||
case DONE:
|
|
||||||
status = (PBOOLEAN)Argument;
|
status = (PBOOLEAN)Argument;
|
||||||
if (*status == FALSE)
|
if (*status == FALSE)
|
||||||
{
|
{
|
||||||
|
Log("Format error: %u ERROR_NOT_SUPPORTED=%u", LASTERR, ERROR_NOT_SUPPORTED);
|
||||||
g_dll_format_error = 1;
|
g_dll_format_error = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Log("Format Done");
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case FCC_DONE_WITH_STRUCTURE:
|
||||||
|
Log("Format FCC_DONE_WITH_STRUCTURE");
|
||||||
|
break;
|
||||||
|
case FCC_INCOMPATIBLE_FILE_SYSTEM:
|
||||||
|
Log("Incompatible File System");
|
||||||
|
break;
|
||||||
|
case FCC_ACCESS_DENIED:
|
||||||
|
Log("Access denied");
|
||||||
|
break;
|
||||||
|
case FCC_MEDIA_WRITE_PROTECTED:
|
||||||
|
Log("Media is write protected");
|
||||||
|
break;
|
||||||
|
case FCC_VOLUME_IN_USE:
|
||||||
|
Log("Volume is in use");
|
||||||
|
break;
|
||||||
|
case FCC_DEVICE_NOT_READY:
|
||||||
|
Log("The device is not ready");
|
||||||
|
break;
|
||||||
|
case FCC_CANT_QUICK_FORMAT:
|
||||||
|
Log("Cannot quick format this volume");
|
||||||
|
break;
|
||||||
|
case FCC_BAD_LABEL:
|
||||||
|
Log("Bad label");
|
||||||
|
break;
|
||||||
|
case FCC_OUTPUT:
|
||||||
|
Log("%s", ((PTEXTOUTPUT)Argument)->Output);
|
||||||
|
break;
|
||||||
|
case FCC_CLUSTER_SIZE_TOO_BIG:
|
||||||
|
case FCC_CLUSTER_SIZE_TOO_SMALL:
|
||||||
|
Log("Unsupported cluster size");
|
||||||
|
break;
|
||||||
|
case FCC_VOLUME_TOO_BIG:
|
||||||
|
case FCC_VOLUME_TOO_SMALL:
|
||||||
|
Log("Volume is too %s", (Command == FCC_VOLUME_TOO_BIG) ? "big" : "small");
|
||||||
|
break;
|
||||||
|
case FCC_NO_MEDIA_IN_DRIVE:
|
||||||
|
Log("No media in drive");
|
||||||
|
break;
|
||||||
|
case FCC_ALIGNMENT_VIOLATION:
|
||||||
|
Log("Partition start offset is not aligned to the cluster size");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Log("FormatExCallback: Received unhandled command 0x%02X - aborting", Command);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,7 +334,7 @@ BOOL DLL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
|||||||
g_dll_format_error = 0;
|
g_dll_format_error = 0;
|
||||||
|
|
||||||
Log("Call FormatEx Function for %C: %s ClusterSize=%u(%uKB)", DriveLetter, GetVentoyFsFmtNameByTypeA(fs), ClusterSize, ClusterSize / 1024);
|
Log("Call FormatEx Function for %C: %s ClusterSize=%u(%uKB)", DriveLetter, GetVentoyFsFmtNameByTypeA(fs), ClusterSize, ClusterSize / 1024);
|
||||||
FormatEx(RootDirectory, media, Format, Label, TRUE, ClusterSize, FormatExCallback);
|
FormatEx(RootDirectory, media, Format, Label, FP_FORCE | FP_QUICK, ClusterSize, FormatExCallback);
|
||||||
FreeLibrary(ifsModule);
|
FreeLibrary(ifsModule);
|
||||||
|
|
||||||
if (g_dll_format_error)
|
if (g_dll_format_error)
|
||||||
@@ -260,24 +350,30 @@ BOOL DLL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
|||||||
|
|
||||||
BOOL DISK_FormatVolume(char DriveLetter, int fs, UINT64 VolumeSize)
|
BOOL DISK_FormatVolume(char DriveLetter, int fs, UINT64 VolumeSize)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
DWORD ClusterSize = 0;
|
DWORD ClusterSize = 0;
|
||||||
BOOL ret = FALSE;
|
BOOL ret = FALSE;
|
||||||
|
FmtFunc astFmtFunc[] =
|
||||||
|
{
|
||||||
|
FMT_DEF(VDS_FormatVolume),
|
||||||
|
FMT_DEF(DLL_FormatVolume),
|
||||||
|
FMT_DEF(PSHELL_FormatVolume),
|
||||||
|
FMT_DEF(DSPT_FormatVolume),
|
||||||
|
FMT_DEF(CMD_FormatVolume),
|
||||||
|
{ NULL, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
ClusterSize = (DWORD)GetClusterSize();
|
ClusterSize = (DWORD)GetClusterSize();
|
||||||
Log("DISK_FormatVolume %C:\\ %s VolumeSize=%llu ClusterSize=%u(%uKB)",
|
Log("DISK_FormatVolume %C:\\ %s VolumeSize=%llu ClusterSize=%u(%uKB)",
|
||||||
DriveLetter, GetVentoyFsNameByType(fs), (ULONGLONG)VolumeSize, ClusterSize, ClusterSize/1024);
|
DriveLetter, GetVentoyFsNameByType(fs), (ULONGLONG)VolumeSize, ClusterSize, ClusterSize / 1024);
|
||||||
|
|
||||||
ret = DLL_FormatVolume(DriveLetter, fs, ClusterSize);
|
for (i = 0; astFmtFunc[i].formatFunc; i++)
|
||||||
if (!ret)
|
|
||||||
{
|
{
|
||||||
ret = VDS_FormatVolume(DriveLetter, fs, ClusterSize);
|
Log("%s ...", astFmtFunc[i].name);
|
||||||
if (!ret)
|
ret = astFmtFunc[i].formatFunc(DriveLetter, fs, ClusterSize);
|
||||||
|
if (ret)
|
||||||
{
|
{
|
||||||
ret = DSPT_FormatVolume(DriveLetter, fs, ClusterSize);
|
break;
|
||||||
if (!ret)
|
|
||||||
{
|
|
||||||
ret = PSHELL_FormatVolume(DriveLetter, fs, ClusterSize);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -58,6 +58,8 @@ BOOL VDS_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
|||||||
BOOL DSPT_CleanDisk(int DriveIndex);
|
BOOL DSPT_CleanDisk(int DriveIndex);
|
||||||
BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
||||||
|
|
||||||
|
BOOL CMD_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
||||||
|
|
||||||
//powershell.exe
|
//powershell.exe
|
||||||
BOOL PSHELL_CleanDisk(int DriveIndex);
|
BOOL PSHELL_CleanDisk(int DriveIndex);
|
||||||
BOOL PSHELL_DeleteVtoyEFIPartition(int DriveIndex, UINT64 EfiPartOffset);
|
BOOL PSHELL_DeleteVtoyEFIPartition(int DriveIndex, UINT64 EfiPartOffset);
|
||||||
@@ -66,11 +68,22 @@ BOOL PSHELL_ChangeVtoyEFI2Basic(int DriveIndex, UINT64 Offset);
|
|||||||
BOOL PSHELL_ShrinkVolume(int DriveIndex, const char* VolumeGuid, CHAR DriveLetter, UINT64 OldBytes, UINT64 ReduceBytes);
|
BOOL PSHELL_ShrinkVolume(int DriveIndex, const char* VolumeGuid, CHAR DriveLetter, UINT64 OldBytes, UINT64 ReduceBytes);
|
||||||
BOOL PSHELL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
BOOL PSHELL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
||||||
|
|
||||||
|
const CHAR* DISK_GetWindowsDir(void);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Internel define
|
// Internel define
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
typedef BOOL(*FormatVolume_PF)(char DriveLetter, int fs, DWORD ClusterSize);
|
||||||
|
|
||||||
|
typedef struct FmtFunc
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
FormatVolume_PF formatFunc;
|
||||||
|
}FmtFunc;
|
||||||
|
|
||||||
|
#define FMT_DEF(func) { #func, func }
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -30,7 +30,7 @@ STATIC BOOL IsDiskpartExist(void)
|
|||||||
{
|
{
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
|
|
||||||
ret = IsFileExist("C:\\Windows\\system32\\diskpart.exe");
|
ret = IsFileExist("%s\\system32\\diskpart.exe", DISK_GetWindowsDir());
|
||||||
if (!ret)
|
if (!ret)
|
||||||
{
|
{
|
||||||
Log("diskpart.exe not exist");
|
Log("diskpart.exe not exist");
|
||||||
@@ -39,6 +39,20 @@ STATIC BOOL IsDiskpartExist(void)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
STATIC BOOL IsCmdExist(void)
|
||||||
|
{
|
||||||
|
BOOL ret;
|
||||||
|
|
||||||
|
ret = IsFileExist("%s\\system32\\cmd.exe", DISK_GetWindowsDir());
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
Log("cmd.exe not exist");
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
STATIC BOOL DSPT_CommProc(const char *Cmd)
|
STATIC BOOL DSPT_CommProc(const char *Cmd)
|
||||||
{
|
{
|
||||||
CHAR CmdBuf[MAX_PATH];
|
CHAR CmdBuf[MAX_PATH];
|
||||||
@@ -71,6 +85,29 @@ STATIC BOOL DSPT_CommProc(const char *Cmd)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
STATIC BOOL CMD_CommProc(char* Cmd)
|
||||||
|
{
|
||||||
|
STARTUPINFOA Si;
|
||||||
|
PROCESS_INFORMATION Pi;
|
||||||
|
|
||||||
|
GetStartupInfoA(&Si);
|
||||||
|
Si.dwFlags |= STARTF_USESHOWWINDOW;
|
||||||
|
Si.wShowWindow = SW_HIDE;
|
||||||
|
|
||||||
|
Log("CreateProcess <%s>", Cmd);
|
||||||
|
CreateProcessA(NULL, Cmd, NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi);
|
||||||
|
|
||||||
|
Log("Wair process ...");
|
||||||
|
WaitForSingleObject(Pi.hProcess, INFINITE);
|
||||||
|
Log("Process finished...");
|
||||||
|
|
||||||
|
CHECK_CLOSE_HANDLE(Pi.hProcess);
|
||||||
|
CHECK_CLOSE_HANDLE(Pi.hThread);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
BOOL DSPT_CleanDisk(int DriveIndex)
|
BOOL DSPT_CleanDisk(int DriveIndex)
|
||||||
{
|
{
|
||||||
CHAR CmdBuf[128];
|
CHAR CmdBuf[128];
|
||||||
@@ -90,6 +127,7 @@ BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
|||||||
{
|
{
|
||||||
const char* fsname = NULL;
|
const char* fsname = NULL;
|
||||||
CHAR CmdBuf[256];
|
CHAR CmdBuf[256];
|
||||||
|
CHAR FsName[128];
|
||||||
|
|
||||||
Log("FormatVolumeByDiskpart <%C:>", DriveLetter);
|
Log("FormatVolumeByDiskpart <%C:>", DriveLetter);
|
||||||
|
|
||||||
@@ -111,5 +149,69 @@ BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
|||||||
|
|
||||||
Log("Diskpart cmd:<%s>", CmdBuf);
|
Log("Diskpart cmd:<%s>", CmdBuf);
|
||||||
|
|
||||||
return DSPT_CommProc(CmdBuf);
|
DSPT_CommProc(CmdBuf);
|
||||||
|
|
||||||
|
sprintf_s(CmdBuf, sizeof(CmdBuf), "%C:\\", DriveLetter);
|
||||||
|
GetVolumeInformationA(CmdBuf, NULL, 0, NULL, NULL, NULL, FsName, sizeof(FsName));
|
||||||
|
VentoyStringToUpper(FsName);
|
||||||
|
|
||||||
|
Log("New fs name after run diskpart:<%s>", FsName);
|
||||||
|
|
||||||
|
if (strcmp(FsName, fsname) == 0)
|
||||||
|
{
|
||||||
|
Log("FormatVolumeByDiskpart <%C:> SUCCESS", DriveLetter);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log("FormatVolumeByDiskpart <%C:> FAILED", DriveLetter);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOL CMD_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
||||||
|
{
|
||||||
|
const char* fsname = NULL;
|
||||||
|
CHAR CmdBuf[256];
|
||||||
|
CHAR FsName[128];
|
||||||
|
|
||||||
|
Log("FormatVolumeByCmd <%C:>", DriveLetter);
|
||||||
|
|
||||||
|
if (!IsCmdExist())
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
fsname = GetVentoyFsFmtNameByTypeA(fs);
|
||||||
|
|
||||||
|
if (ClusterSize > 0)
|
||||||
|
{
|
||||||
|
sprintf_s(CmdBuf, sizeof(CmdBuf), "cmd.exe /c \"echo Y|format %C: /V:Ventoy /fs:%s /q /A:%u /X\"", DriveLetter, fsname, ClusterSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sprintf_s(CmdBuf, sizeof(CmdBuf), "cmd.exe /c \"echo Y|format %C: /V:Ventoy /fs:%s /q /X\"", DriveLetter, fsname);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log("Cmd.exe <%s>", CmdBuf);
|
||||||
|
|
||||||
|
CMD_CommProc(CmdBuf);
|
||||||
|
|
||||||
|
sprintf_s(CmdBuf, sizeof(CmdBuf), "%C:\\", DriveLetter);
|
||||||
|
GetVolumeInformationA(CmdBuf, NULL, 0, NULL, NULL, NULL, FsName, sizeof(FsName));
|
||||||
|
VentoyStringToUpper(FsName);
|
||||||
|
|
||||||
|
Log("New fs name after run cmd.exe:<%s>", FsName);
|
||||||
|
|
||||||
|
if (strcmp(FsName, fsname) == 0)
|
||||||
|
{
|
||||||
|
Log("FormatVolumeByCmd <%C:> SUCCESS", DriveLetter);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log("FormatVolumeByCmd <%C:> FAILED", DriveLetter);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -31,13 +31,7 @@ STATIC BOOL IsPowershellExist(void)
|
|||||||
{
|
{
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
|
|
||||||
if (!IsWindows8OrGreater())
|
ret = IsFileExist("%s\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", DISK_GetWindowsDir());
|
||||||
{
|
|
||||||
Log("This is before Windows8 powershell disk not supported.");
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = IsFileExist("C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe");
|
|
||||||
if (!ret)
|
if (!ret)
|
||||||
{
|
{
|
||||||
Log("powershell.exe not exist");
|
Log("powershell.exe not exist");
|
||||||
@@ -261,6 +255,7 @@ BOOL PSHELL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
|||||||
BOOL ret;
|
BOOL ret;
|
||||||
const char* fsname = NULL;
|
const char* fsname = NULL;
|
||||||
CHAR CmdBuf[512];
|
CHAR CmdBuf[512];
|
||||||
|
CHAR FsName[128];
|
||||||
|
|
||||||
fsname = GetVentoyFsFmtNameByTypeA(fs);
|
fsname = GetVentoyFsFmtNameByTypeA(fs);
|
||||||
|
|
||||||
@@ -279,5 +274,26 @@ BOOL PSHELL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
|||||||
|
|
||||||
ret = PSHELL_CommProc(CmdBuf);
|
ret = PSHELL_CommProc(CmdBuf);
|
||||||
Log("PSHELL_FormatVolume %C: ret:%d (%s)", DriveLetter, ret, ret ? "SUCCESS" : "FAIL");
|
Log("PSHELL_FormatVolume %C: ret:%d (%s)", DriveLetter, ret, ret ? "SUCCESS" : "FAIL");
|
||||||
return ret;
|
if (!ret)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sprintf_s(CmdBuf, sizeof(CmdBuf), "%C:\\", DriveLetter);
|
||||||
|
GetVolumeInformationA(CmdBuf, NULL, 0, NULL, NULL, NULL, FsName, sizeof(FsName));
|
||||||
|
VentoyStringToUpper(FsName);
|
||||||
|
|
||||||
|
Log("New fs name after run PSHELL:<%s>", FsName);
|
||||||
|
|
||||||
|
if (strcmp(FsName, fsname) == 0)
|
||||||
|
{
|
||||||
|
Log("PSHELL_FormatVolume <%C:> SUCCESS", DriveLetter);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log("PSHELL_FormatVolume <%C:> FAILED", DriveLetter);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -92,6 +92,8 @@ typedef enum STR_ID
|
|||||||
STR_PART_CLUSTER, //52
|
STR_PART_CLUSTER, //52
|
||||||
STR_PART_CLUSTER_DEFAULT, //53
|
STR_PART_CLUSTER_DEFAULT, //53
|
||||||
|
|
||||||
|
STR_DONATE, //54
|
||||||
|
|
||||||
STR_ID_MAX
|
STR_ID_MAX
|
||||||
}STR_ID;
|
}STR_ID;
|
||||||
|
|
||||||
|
@@ -725,12 +725,13 @@ int VentoyProcSecureBoot(BOOL SecureBoot)
|
|||||||
fl_fclose(file);
|
fl_fclose(file);
|
||||||
|
|
||||||
Log("Now delete all efi files ...");
|
Log("Now delete all efi files ...");
|
||||||
fl_remove("/EFI/BOOT/BOOTX64.EFI");
|
fl_remove("/EFI/BOOT/BOOTX64.EFI");
|
||||||
fl_remove("/EFI/BOOT/grubx64.efi");
|
fl_remove("/EFI/BOOT/grubx64.efi");
|
||||||
fl_remove("/EFI/BOOT/grubx64_real.efi");
|
fl_remove("/EFI/BOOT/grubx64_real.efi");
|
||||||
fl_remove("/EFI/BOOT/MokManager.efi");
|
fl_remove("/EFI/BOOT/MokManager.efi");
|
||||||
fl_remove("/EFI/BOOT/mmx64.efi");
|
fl_remove("/EFI/BOOT/mmx64.efi");
|
||||||
fl_remove("/ENROLL_THIS_KEY_IN_MOKMANAGER.cer");
|
fl_remove("/ENROLL_THIS_KEY_IN_MOKMANAGER.cer");
|
||||||
|
fl_remove("/EFI/BOOT/grub.efi");
|
||||||
|
|
||||||
file = fl_fopen("/EFI/BOOT/BOOTX64.EFI", "wb");
|
file = fl_fopen("/EFI/BOOT/BOOTX64.EFI", "wb");
|
||||||
Log("Open bootx64 efi file %p ", file);
|
Log("Open bootx64 efi file %p ", file);
|
||||||
@@ -1224,7 +1225,45 @@ static int FormatPart1exFAT(UINT64 DiskSizeBytes)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ZeroPart1FileSystem(HANDLE hDrive, UINT64 Part2StartSector)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
DWORD dwSize = 0;
|
||||||
|
LARGE_INTEGER liCurPos;
|
||||||
|
LARGE_INTEGER liNewPos;
|
||||||
|
CHAR TmpBuffer[1024] = { 0 };
|
||||||
|
|
||||||
|
liCurPos.QuadPart = VENTOY_PART1_START_SECTOR * 512;
|
||||||
|
liNewPos.QuadPart = 0;
|
||||||
|
if (0 == SetFilePointerEx(hDrive, liCurPos, &liNewPos, FILE_BEGIN) ||
|
||||||
|
liNewPos.QuadPart != liCurPos.QuadPart)
|
||||||
|
{
|
||||||
|
Log("SetFilePointerEx Failed %u %llu %llu", LASTERR, (ULONGLONG)liCurPos.QuadPart, (ULONGLONG)liNewPos.QuadPart);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 1024; i++)
|
||||||
|
{
|
||||||
|
WriteFile(hDrive, TmpBuffer, 1024, &dwSize, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
liCurPos.QuadPart = (Part2StartSector * 512) - (1024 * 1024);
|
||||||
|
liNewPos.QuadPart = 0;
|
||||||
|
if (0 == SetFilePointerEx(hDrive, liCurPos, &liNewPos, FILE_BEGIN) ||
|
||||||
|
liNewPos.QuadPart != liCurPos.QuadPart)
|
||||||
|
{
|
||||||
|
Log("SetFilePointerEx Failed %u %llu %llu", LASTERR, (ULONGLONG)liCurPos.QuadPart, (ULONGLONG)liNewPos.QuadPart);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 1024; i++)
|
||||||
|
{
|
||||||
|
WriteFile(hDrive, TmpBuffer, 1024, &dwSize, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log("Zero Part1 SUCCESS");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int ClearVentoyFromPhyDrive(HWND hWnd, PHY_DRIVE_INFO *pPhyDrive, char *pDrvLetter)
|
int ClearVentoyFromPhyDrive(HWND hWnd, PHY_DRIVE_INFO *pPhyDrive, char *pDrvLetter)
|
||||||
{
|
{
|
||||||
@@ -1698,6 +1737,7 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
|
|||||||
int i;
|
int i;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
int state = 0;
|
int state = 0;
|
||||||
|
BOOL ReformatOK;
|
||||||
HANDLE hDrive;
|
HANDLE hDrive;
|
||||||
DWORD dwSize;
|
DWORD dwSize;
|
||||||
BOOL bRet;
|
BOOL bRet;
|
||||||
@@ -1710,6 +1750,7 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
|
|||||||
UINT64 Part1SectorCount = 0;
|
UINT64 Part1SectorCount = 0;
|
||||||
UINT64 Part2StartSector = 0;
|
UINT64 Part2StartSector = 0;
|
||||||
BOOL LargeFAT32 = FALSE;
|
BOOL LargeFAT32 = FALSE;
|
||||||
|
BOOL DefaultExFAT = FALSE;
|
||||||
|
|
||||||
Log("#####################################################");
|
Log("#####################################################");
|
||||||
Log("InstallVentoy2PhyDrive try%d %s PhyDrive%d <<%s %s %dGB>>", TryId,
|
Log("InstallVentoy2PhyDrive try%d %s PhyDrive%d <<%s %s %dGB>>", TryId,
|
||||||
@@ -1822,9 +1863,10 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
|
|||||||
goto End;
|
goto End;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (GetVentoyFsType() == VTOY_FS_EXFAT && GetClusterSize() == 0)
|
||||||
{
|
{
|
||||||
Log("Formatting part1 exFAT ...");
|
Log("Formatting part1 exFAT ...");
|
||||||
|
DefaultExFAT = TRUE;
|
||||||
if (0 != FormatPart1exFAT(pPhyDrive->SizeInBytes))
|
if (0 != FormatPart1exFAT(pPhyDrive->SizeInBytes))
|
||||||
{
|
{
|
||||||
Log("FormatPart1exFAT failed.");
|
Log("FormatPart1exFAT failed.");
|
||||||
@@ -1832,7 +1874,16 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
|
|||||||
goto End;
|
goto End;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log("Zero part1 file system ...");
|
||||||
|
if (0 != ZeroPart1FileSystem(hDrive, Part2StartSector))
|
||||||
|
{
|
||||||
|
Log("ZeroPart1FileSystem failed.");
|
||||||
|
rc = 1;
|
||||||
|
goto End;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
PROGRESS_BAR_SET_POS(PT_FORMAT_PART2);
|
PROGRESS_BAR_SET_POS(PT_FORMAT_PART2);
|
||||||
Log("Writing part2 FAT img ...");
|
Log("Writing part2 FAT img ...");
|
||||||
@@ -1956,6 +2007,12 @@ End:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// close handle, or it will deny reformat
|
||||||
|
Log("Close handle ...");
|
||||||
|
CHECK_CLOSE_HANDLE(hDrive);
|
||||||
|
|
||||||
|
ReformatOK = TRUE;
|
||||||
|
|
||||||
if (state)
|
if (state)
|
||||||
{
|
{
|
||||||
if (LargeFAT32)
|
if (LargeFAT32)
|
||||||
@@ -1963,22 +2020,39 @@ End:
|
|||||||
Log("No need to reformat for large FAT32");
|
Log("No need to reformat for large FAT32");
|
||||||
pPhyDrive->VentoyFsClusterSize = GetVolumeClusterSize(MountDrive);
|
pPhyDrive->VentoyFsClusterSize = GetVolumeClusterSize(MountDrive);
|
||||||
}
|
}
|
||||||
else if (DISK_FormatVolume(MountDrive, GetVentoyFsType(), Part1SectorCount * 512))
|
else if (DefaultExFAT)
|
||||||
{
|
{
|
||||||
Log("Reformat %C:\\ to %s SUCCESS", MountDrive, GetVentoyFsName());
|
Log("No need to reformat for default exfat");
|
||||||
pPhyDrive->VentoyFsClusterSize = GetVolumeClusterSize(MountDrive);
|
pPhyDrive->VentoyFsClusterSize = GetVolumeClusterSize(MountDrive);
|
||||||
|
|
||||||
if ((GetVentoyFsType() != VTOY_FS_UDF) && (pPhyDrive->VentoyFsClusterSize < 2048))
|
|
||||||
{
|
|
||||||
for (i = 0; i < 10; i++)
|
|
||||||
{
|
|
||||||
Log("### Invalid cluster size %d ###", pPhyDrive->VentoyFsClusterSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log("Reformat %C:\\ to %s FAILED", MountDrive, GetVentoyFsName());
|
bRet = DISK_FormatVolume(MountDrive, GetVentoyFsType(), Part1SectorCount * 512);
|
||||||
|
for (i = 0; bRet == FALSE && i < 2; i++)
|
||||||
|
{
|
||||||
|
Log("Wait and retry reformat ...");
|
||||||
|
Sleep(1000);
|
||||||
|
bRet = DISK_FormatVolume(MountDrive, GetVentoyFsType(), Part1SectorCount * 512);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bRet)
|
||||||
|
{
|
||||||
|
Log("Reformat %C:\\ to %s SUCCESS", MountDrive, GetVentoyFsName());
|
||||||
|
pPhyDrive->VentoyFsClusterSize = GetVolumeClusterSize(MountDrive);
|
||||||
|
|
||||||
|
if ((GetVentoyFsType() != VTOY_FS_UDF) && (pPhyDrive->VentoyFsClusterSize < 2048))
|
||||||
|
{
|
||||||
|
for (i = 0; i < 10; i++)
|
||||||
|
{
|
||||||
|
Log("### Invalid cluster size %d ###", pPhyDrive->VentoyFsClusterSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ReformatOK = FALSE;
|
||||||
|
Log("Reformat %C:\\ to %s FAILED", MountDrive, GetVentoyFsName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1986,6 +2060,30 @@ End:
|
|||||||
Log("Can not reformat %s to %s", DriveName, GetVentoyFsName());
|
Log("Can not reformat %s to %s", DriveName, GetVentoyFsName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ReformatOK)
|
||||||
|
{
|
||||||
|
Log("Format to exfat with built-in algorithm");
|
||||||
|
|
||||||
|
hDrive = GetPhysicalHandle(pPhyDrive->PhyDrive, TRUE, TRUE, FALSE);
|
||||||
|
if (hDrive == INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
Log("Failed to GetPhysicalHandle for write.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (0 != FormatPart1exFAT(pPhyDrive->SizeInBytes))
|
||||||
|
{
|
||||||
|
Log("FormatPart1exFAT SUCCESS.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log("FormatPart1exFAT FAILED.");
|
||||||
|
}
|
||||||
|
|
||||||
|
CHECK_CLOSE_HANDLE(hDrive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Log("OK\n");
|
Log("OK\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2002,6 +2100,8 @@ End:
|
|||||||
Log("###### [Error:] Virtual Disk Service (VDS) Unavailable ######");
|
Log("###### [Error:] Virtual Disk Service (VDS) Unavailable ######");
|
||||||
Log("###### [Error:] Virtual Disk Service (VDS) Unavailable ######");
|
Log("###### [Error:] Virtual Disk Service (VDS) Unavailable ######");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CHECK_CLOSE_HANDLE(hDrive);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pGptInfo)
|
if (pGptInfo)
|
||||||
@@ -2009,7 +2109,6 @@ End:
|
|||||||
free(pGptInfo);
|
free(pGptInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_CLOSE_HANDLE(hDrive);
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BIN
Ventoy2Disk/Ventoy2Disk/Res/secure2.ico
Normal file
BIN
Ventoy2Disk/Ventoy2Disk/Res/secure2.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 164 KiB |
@@ -1124,5 +1124,14 @@ int GetPhysicalDriveCount(void)
|
|||||||
return Count;
|
return Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VentoyStringToUpper(CHAR* str)
|
||||||
|
{
|
||||||
|
while (str && *str)
|
||||||
|
{
|
||||||
|
if (*str >= 'a' && *str <= 'z')
|
||||||
|
{
|
||||||
|
*str = toupper(*str);
|
||||||
|
}
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Binary file not shown.
@@ -209,7 +209,7 @@ typedef enum PROGRESS_POINT
|
|||||||
PT_MOUNT_VOLUME,
|
PT_MOUNT_VOLUME,
|
||||||
|
|
||||||
PT_REFORMAT_START,
|
PT_REFORMAT_START,
|
||||||
PT_REFORMAT_FINISH = PT_REFORMAT_START + 2,
|
PT_REFORMAT_FINISH = PT_REFORMAT_START + 16,
|
||||||
|
|
||||||
PT_FINISH
|
PT_FINISH
|
||||||
}PROGRESS_POINT;
|
}PROGRESS_POINT;
|
||||||
@@ -355,6 +355,9 @@ void InitComboxCtrl(HWND hWnd, int PhyDrive);
|
|||||||
int disk_io_is_write_error(void);
|
int disk_io_is_write_error(void);
|
||||||
void disk_io_reset_write_error(void);
|
void disk_io_reset_write_error(void);
|
||||||
const char* GUID2String(void* guid, char* buf, int len);
|
const char* GUID2String(void* guid, char* buf, int len);
|
||||||
|
void VentoyStringToUpper(CHAR* str);
|
||||||
|
BOOL AlertSuppressInit(void);
|
||||||
|
void SetAlertPromptHookEnable(BOOL enable);
|
||||||
|
|
||||||
#define VTSI_SUPPORT 1
|
#define VTSI_SUPPORT 1
|
||||||
|
|
||||||
|
Binary file not shown.
@@ -342,6 +342,7 @@
|
|||||||
</Manifest>
|
</Manifest>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClCompile Include="AlertSuppress.c" />
|
||||||
<ClCompile Include="crc32.c" />
|
<ClCompile Include="crc32.c" />
|
||||||
<ClCompile Include="DiskService.c" />
|
<ClCompile Include="DiskService.c" />
|
||||||
<ClCompile Include="DiskService_diskpart.c" />
|
<ClCompile Include="DiskService_diskpart.c" />
|
||||||
|
@@ -96,6 +96,9 @@
|
|||||||
<ClCompile Include="YesDialog.c">
|
<ClCompile Include="YesDialog.c">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="AlertSuppress.c">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="Ventoy2Disk.h">
|
<ClInclude Include="Ventoy2Disk.h">
|
||||||
|
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user