mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-09-16 17:11:13 +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:
|
||||
label: Ventoy Version
|
||||
description: What version of ventoy are you running?
|
||||
placeholder: 1.0.83
|
||||
placeholder: 1.0.84
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
|
@@ -1491,6 +1491,34 @@ STATIC EFI_STATUS EFIAPI ventoy_wrapper_file_procotol(EFI_FILE_PROTOCOL *File, B
|
||||
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
|
||||
(
|
||||
EFI_FILE_HANDLE This,
|
||||
@@ -1534,7 +1562,7 @@ STATIC EFI_STATUS EFIAPI ventoy_wrapper_file_open
|
||||
AsciiSPrint(TmpName, sizeof(TmpName), "%s", Name);
|
||||
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);
|
||||
*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)
|
||||
{
|
||||
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);
|
||||
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";
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
@@ -6177,12 +6184,21 @@ static grub_err_t ventoy_cmd_fs_ignore_case(grub_extcmd_context_t ctxt, int argc
|
||||
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)
|
||||
{
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
ventoy_plugin_load_menu_lang(args[0]);
|
||||
ventoy_plugin_load_menu_lang(0, args[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_secondary_recover_mode", ventoy_cmd_secondary_recover_mode, 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 },
|
||||
};
|
||||
|
||||
|
@@ -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
|
||||
{
|
||||
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_img_name_valid(const char *filename, grub_size_t namelen);
|
||||
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);
|
||||
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);
|
||||
|
@@ -177,10 +177,7 @@ static grub_err_t ventoy_isolinux_initrd_collect(grub_file_t file, const char *p
|
||||
{
|
||||
nextline = ventoy_get_line(start);
|
||||
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
VTOY_SKIP_SPACE(start);
|
||||
|
||||
offset = 7; // strlen("initrd=") or "INITRD " or "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);
|
||||
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
VTOY_SKIP_SPACE(start);
|
||||
|
||||
if (grub_strncmp(start, "initrd", 6) != 0)
|
||||
{
|
||||
@@ -454,10 +448,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
||||
start++;
|
||||
}
|
||||
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
VTOY_SKIP_SPACE(start);
|
||||
|
||||
if (*start == '"')
|
||||
{
|
||||
@@ -528,10 +519,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
||||
|
||||
if (*start == ' ' || *start == '\t')
|
||||
{
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
VTOY_SKIP_SPACE(start);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1813,18 +1801,12 @@ static char *ventoy_systemd_conf_tag(char *buf, const char *tag, int optional)
|
||||
for (start = buf; start; start = nextline)
|
||||
{
|
||||
nextline = ventoy_get_line(start);
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
VTOY_SKIP_SPACE(start);
|
||||
|
||||
if (grub_strncmp(start, tag, taglen) == 0 && (start[taglen] == ' ' || start[taglen] == '\t'))
|
||||
{
|
||||
start += taglen;
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
VTOY_SKIP_SPACE(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)
|
||||
{
|
||||
nextline = ventoy_get_line(start);
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
VTOY_SKIP_SPACE(start);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
int ventoy_plugin_load_menu_lang(const char *lang)
|
||||
int ventoy_plugin_load_menu_lang(int init, const char *lang)
|
||||
{
|
||||
int ret = 1;
|
||||
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"));
|
||||
}
|
||||
|
||||
ventoy_menu_push_key(GRUB_TERM_ESC);
|
||||
ventoy_menu_push_key(GRUB_TERM_ESC);
|
||||
g_ventoy_menu_refresh = 1;
|
||||
if (init == 0)
|
||||
{
|
||||
ventoy_menu_push_key(GRUB_TERM_ESC);
|
||||
ventoy_menu_push_key(GRUB_TERM_ESC);
|
||||
g_ventoy_menu_refresh = 1;
|
||||
}
|
||||
ret = 0;
|
||||
|
||||
end:
|
||||
|
@@ -12,7 +12,7 @@ make install
|
||||
PATH=$VT_DIR/GRUB2/INSTALL/bin/:$VT_DIR/GRUB2/INSTALL/sbin/:$PATH
|
||||
|
||||
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"
|
||||
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"
|
||||
fi
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
else
|
||||
menuentry "@VTMENU_CHKSUM_MD5_CALC" --class=checksum_md5 {
|
||||
md5sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
fi
|
||||
@@ -41,14 +41,14 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha1" ]; then
|
||||
echo "$vtReadChecksum"
|
||||
fi
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
else
|
||||
menuentry "@VTMENU_CHKSUM_SHA1_CALC" --class=checksum_sha1 {
|
||||
sha1sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
fi
|
||||
@@ -70,14 +70,14 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha256" ]; then
|
||||
echo "$vtReadChecksum"
|
||||
fi
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
else
|
||||
menuentry "@VTMENU_CHKSUM_SHA256_CALC" --class=checksum_sha256 {
|
||||
sha256sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
fi
|
||||
@@ -99,14 +99,14 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha512" ]; then
|
||||
echo "$vtReadChecksum"
|
||||
fi
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
else
|
||||
menuentry "@VTMENU_CHKSUM_SHA512_CALC" --class=checksum_sha512{
|
||||
sha512sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
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
|
||||
boot
|
||||
vt_pop_pager
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
|
||||
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
|
||||
boot
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path control $vtoy_iso_part
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
@@ -88,7 +88,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path theme $vtoy_iso_part
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
@@ -97,7 +97,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
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
|
||||
unset pager
|
||||
}
|
||||
@@ -109,7 +109,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
echo -e "\n############### dump persistence ###############"
|
||||
vt_dump_persistence
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
@@ -118,7 +118,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
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
|
||||
unset pager
|
||||
}
|
||||
@@ -127,7 +127,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
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
|
||||
unset pager
|
||||
}
|
||||
@@ -136,7 +136,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
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
|
||||
unset pager
|
||||
}
|
||||
@@ -145,7 +145,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path injection $vtoy_iso_part
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
@@ -154,7 +154,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
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
|
||||
unset pager
|
||||
}
|
||||
@@ -163,7 +163,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
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
|
||||
unset pager
|
||||
}
|
||||
@@ -172,7 +172,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
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
|
||||
unset pager
|
||||
}
|
||||
@@ -181,7 +181,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
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
|
||||
unset pager
|
||||
}
|
||||
@@ -190,7 +190,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path dud $vtoy_iso_part
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
@@ -199,7 +199,7 @@ submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path password $vtoy_iso_part
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -Vn "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
|
@@ -16,6 +16,12 @@
|
||||
#
|
||||
#************************************************************************************
|
||||
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
insmod setkey
|
||||
insmod regexp
|
||||
insmod video_fb
|
||||
fi
|
||||
|
||||
function ventoy_pause {
|
||||
echo "press Enter to continue ......"
|
||||
read vtTmpPause
|
||||
@@ -85,7 +91,7 @@ function ventoy_ext_menu {
|
||||
unset ventoy_new_context
|
||||
else
|
||||
echo "ventoy_grub.cfg NOT exist."
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
echo -V "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
fi
|
||||
}
|
||||
@@ -846,6 +852,13 @@ function uefi_linux_menu_func {
|
||||
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
||||
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
|
||||
echo " "
|
||||
@@ -1313,6 +1326,13 @@ function legacy_linux_menu_func {
|
||||
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
||||
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
|
||||
set root=$vtback_root
|
||||
@@ -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 The size of the iso file \"$vt_chosen_size\" is invalid. File corrupted ?\n"
|
||||
echo -e " 此ISO文件的大小 \"$vt_chosen_size\" 有问题,请确认文件是否损坏。\n"
|
||||
echo -e "\n press ENTER to continue (请按 回车 键继续) ..."
|
||||
echo -v "VTMENU_ENTER_CONTINUE ..."
|
||||
read vtInputKey
|
||||
fi
|
||||
fi
|
||||
@@ -1569,7 +1589,7 @@ function miso_common_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"
|
||||
echo -e "\npress ENTER to exit (请按 回车 键返回) ..."
|
||||
echo -V "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
|
||||
@@ -1716,7 +1736,7 @@ function vhd_common_menuentry {
|
||||
echo -e "!!! WARNING !!!\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 -n "press ENTER to continue boot (请按 回车 键继续) ..."
|
||||
echo -vn "VTMENU_ENTER_CONTINUE ..."
|
||||
read vtInputKey
|
||||
fi
|
||||
fi
|
||||
@@ -1825,7 +1845,7 @@ function vtoy_unsupport_menuentry {
|
||||
|
||||
function only_uefi_tip {
|
||||
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
|
||||
}
|
||||
|
||||
@@ -2083,7 +2103,7 @@ function ventoy_img_openwrt {
|
||||
ventoy_gui_console
|
||||
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 "\n press ENTER to exit (请按 回车 键返回) ..."
|
||||
echo -V "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
ventoy_cli_console
|
||||
return
|
||||
@@ -2215,7 +2235,7 @@ function ventoy_img_memtest86 {
|
||||
function img_unsupport_tip {
|
||||
echo -e "\n This IMG file is NOT supported now. \n"
|
||||
echo -e " 当前不支持启动此 IMG 文件 \n"
|
||||
echo -e "\npress ENTER to exit (请按 回车 键返回) ..."
|
||||
echo -V "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
|
||||
@@ -2314,14 +2334,15 @@ function img_common_menuentry {
|
||||
elif [ -f (vtimghd,2)/loader/entries/ubos.conf ]; then
|
||||
ventoy_img_ubos
|
||||
elif [ -f (vtimghd,2)/etc/openwrt_version ]; then
|
||||
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
|
||||
ventoy_img_openwrt
|
||||
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}"
|
||||
ventoy_acpi_param ${vtoy_chain_mem_addr} 512
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
@@ -2346,6 +2367,28 @@ function img_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
|
||||
set VTOY_PARAM_NO_ACPI=1
|
||||
@@ -2457,9 +2500,9 @@ else
|
||||
fi
|
||||
|
||||
if [ -n "$VTOY_MENU_LANGUAGE" ]; then
|
||||
vt_load_menu_lang "$VTOY_MENU_LANGUAGE"
|
||||
vt_init_menu_lang "$VTOY_MENU_LANGUAGE"
|
||||
else
|
||||
vt_load_menu_lang en_US
|
||||
vt_init_menu_lang en_US
|
||||
fi
|
||||
|
||||
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
|
||||
F1 - Display this help information
|
||||
F2 - Browse and boot files in local disk
|
||||
F1 - Display help information
|
||||
F2 - Browse and boot files in the local disk
|
||||
F3 - Switch menu mode between Treeview <-> ListView
|
||||
F4 - Boot Windows/Linux in local disk
|
||||
F4 - Boot Windows/Linux on the local disk
|
||||
F5 - Utilities
|
||||
F6 - Load Custom Grub2 Menu
|
||||
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)
|
||||
w/Ctrl+w - WIMBOOT Mode (Only for standard Windows ISO)
|
||||
r/Ctrl+r - Grub2 Mode (Only for some Linux distros)
|
||||
i/Ctrl+i - Compatible Mode (Just only for debug)
|
||||
u/Ctrl+u - Load ISO efi driver (Just only for debug, can not be used officially)
|
||||
i/Ctrl+i - Compatible Mode (Only for debugging)
|
||||
u/Ctrl+u - Load ISO EFI driver (Only for debugging, cannot be used officially)
|
||||
|
||||
|
||||
|
||||
|
@@ -1,19 +1,19 @@
|
||||
L - Sélection de la langue
|
||||
F1 - Afficher cette aide
|
||||
F2 - Browse and boot files in local disk
|
||||
F3 - Basculer l'affichage 'Vue en arbre' <-> 'Vue en liste'
|
||||
F4 - Démarrer le système Windows/Linux local
|
||||
F1 - Afficher l’aide
|
||||
F2 - Démarrer à partir d’un disque local
|
||||
F3 - Basculer l’affichage Vue en arbre <-> Vue en liste
|
||||
F4 - Démarrer un système Windows ou Linux local
|
||||
F5 - Utilitaires
|
||||
F6 - Charger le menu Grub2 personnalisé
|
||||
F6 - Charger le menu GRUB 2 personnalisé
|
||||
F7 - Basculer entre le mode graphique <-> mode texte
|
||||
|
||||
m/Ctrl+m - Somme de contrôle des images (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Mode Memdisk (Seulement pour WinPE/LiveCD ISO/IMG)
|
||||
w/Ctrl+w - Mode WIMBOOT (seulement pour les images standards Windows)
|
||||
r/Ctrl+r - Mode Grub2 (seulement pour quelques Linux)
|
||||
i/Ctrl+i - Mode Compatible (seulement à fins de tests)
|
||||
u/Ctrl+u - Load ISO efi driver (Just only for debug, can not be used officially)
|
||||
d/Ctrl+d - Mode Memdisk (pour WinPE/LiveCD ISO/IMG uniquement)
|
||||
w/Ctrl+w - Mode WIMBOOT (pour images standards Windows uniquement)
|
||||
r/Ctrl+r - Mode GRUB 2 (pour quelques distributions Linux uniquement)
|
||||
i/Ctrl+i - Mode Compatible (pour débug uniquement)
|
||||
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
|
||||
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
|
||||
F4 - Jalankan (boot) Windows/Linux pada disk lokal
|
||||
F4 - Jalankan boot ke Windows/Linux pada disk lokal
|
||||
F5 - Alat Utilitas
|
||||
F6 - Memuat ubah suai Grub2 Menu
|
||||
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 - 언어 선택
|
||||
F1 - 이 도움말 정보 표시
|
||||
F2 - 로컬 디스크에서 파일 찾아보기 및 부팅
|
||||
F2 - 로컬 디스크에서 파일 찾아보기 및 부트
|
||||
F3 - 트리보기 <-> 목록보기 간에 메뉴 모드 전환
|
||||
F4 - 로컬 디스크에서 Windows/Linux 부팅
|
||||
F4 - 로컬 디스크에서 Windows/Linux 부트
|
||||
F5 - 유틸리티
|
||||
F6 - 사용자 지정 Grub2 메뉴 로드
|
||||
F6 - 사용자 지정 Grub2 메뉴 불러오기
|
||||
F7 - GUI 모드 <-> TEXT 모드 간에 전환
|
||||
|
||||
m/Ctrl+m - 체크섬 이미지 파일 (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - WIMBOOT 모드 (표준 Windows ISO 전용)
|
||||
w/Ctrl+w - Memdisk 모드 (작은 WinPE/LiveCD ISO/IMG 전용)
|
||||
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 드라이버 로드 (디버그 전용, 공식적으로 사용할 수 없음)
|
||||
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
|
||||
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
|
||||
F4 - Arrancar o Windows/Linux em disco local
|
||||
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 -e "\n\n\npress ENTER to exit ..."
|
||||
echo -ven "\n\n\n" "VTMENU_ENTER_EXIT ..."
|
||||
read vtInputKey
|
||||
}
|
||||
|
@@ -26,7 +26,7 @@ sfs: fshelp
|
||||
reiserfs: fshelp
|
||||
part_sunpc:
|
||||
zstd:
|
||||
gfxmenu: video_colors trig gfxterm bitmap_scale font normal video bitmap
|
||||
gfxmenu: video_colors trig bitmap_scale gfxterm font normal video bitmap
|
||||
backtrace:
|
||||
jfs:
|
||||
help: extcmd normal
|
||||
@@ -121,7 +121,7 @@ ehci: cs5536 usb boot
|
||||
crypto:
|
||||
part_bsd: part_msdos
|
||||
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
|
||||
password: crypto normal
|
||||
fshelp:
|
||||
|
@@ -26,7 +26,7 @@ sfs: fshelp
|
||||
reiserfs: fshelp
|
||||
part_sunpc:
|
||||
zstd:
|
||||
gfxmenu: video_colors trig gfxterm bitmap_scale font normal video bitmap
|
||||
gfxmenu: video_colors trig bitmap_scale gfxterm font normal video bitmap
|
||||
backtrace:
|
||||
jfs:
|
||||
help: extcmd normal
|
||||
@@ -124,7 +124,7 @@ crypto:
|
||||
part_bsd: part_msdos
|
||||
cs5536: pci
|
||||
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:
|
||||
gcry_sha512: crypto
|
||||
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_ENTER_EXIT": "প্রস্থান করার জন্য এন্টার কী টিপুন",
|
||||
"VTMENU_ENTER_REBOOT": "রিবুট করতে এন্টার কী টিপুন",
|
||||
"VTMENU_ENTER_CONTINUE": "চালিয়ে যেতে এন্টার কী টিপুন",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
||||
|
@@ -77,5 +77,9 @@
|
||||
|
||||
"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": ""
|
||||
}
|
||||
|
@@ -77,5 +77,9 @@
|
||||
|
||||
"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": ""
|
||||
}
|
||||
|
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"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_TREE": "L:Langue F1:Aider F2:Parcourir F3:AffichageListe F4:Localboot F5:Outils F6:Menu étendu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Retour au menu précédent [Esc]",
|
||||
"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:Aide F2:Parcourir F3:Affichage arborescence F4:Démarrage local F5:Outils F6:Menu étendu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Retour au menu précédent [Echap]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Sélection de la langue des menus",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Rechercher et démarrer Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Rechercher et démarrer Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Démarrez le 1er disque local",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Démarrez le 2ème disque local",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Démarrez le 3ème disque local",
|
||||
"VTMENU_LB_SBOOT_G4D": "Rechercher et démarrer GRUB4DOS",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Démarrer depuis le 1er disque local",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Démarrer depuis le 2e 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_IA32EFI": "Rechercher et démarrer BOOTIA32.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_SHA512_CALC_CHK": "Calculer et vérifier SHA512",
|
||||
|
||||
"VTMENU_POWER": "Source d'alimentation",
|
||||
"VTMENU_POWER": "Extinction",
|
||||
"VTMENU_POWER_REBOOT": "Redémarrer",
|
||||
"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_HWINFO": "Informations sur le matériel",
|
||||
|
||||
"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_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_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Afficher les pilotes EFI",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Contourner l’échec de Windows BlinitializeLibrary",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
"VTMENU_JSON_CHK_JSON": "Afficher le fichiers de configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Afficher la configuration du plugin de contrôle global",
|
||||
"VTMENU_JSON_CHK_THEME": "Afficher la configuration du plugin de thème",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Afficher la configuration du plugin d’installation automatique",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Afficher la configuration du plugin de persistance",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Afficher la configuration du plugin des alias du menu",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Afficher la configuration du plugin des astuces du menu",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Afficher la configuration du plugin des classes du menu",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Afficher la configuration du plugin d’injection",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Afficher la configuration du plugin memdisk automatique",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Afficher la configuration du plugin de liste des images",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Afficher la configuration du plugin de liste noire des images",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Afficher la configuration du plugin de substitution des fichiers de démarrage",
|
||||
"VTMENU_JSON_CHK_DUD": "Afficher la configuration du plugin de disques de mise à jour des pilotes",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Afficher la configuration du plugin de mots de passe",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Démarrez en mode normal",
|
||||
"VTMENU_WIMBOOT_MODE": "Démarrez en mode wimboot",
|
||||
"VTMENU_GRUB2_MODE": "Démarrez en mode grub2",
|
||||
"VTMENU_MEMDISK_MODE": "Démarrez en mode memdisk",
|
||||
"VTMENU_NORMAL_MODE": "Démarrer en mode normal",
|
||||
"VTMENU_WIMBOOT_MODE": "Démarrer en mode WimBoot",
|
||||
"VTMENU_GRUB2_MODE": "Démarrer en mode GRUB 2",
|
||||
"VTMENU_MEMDISK_MODE": "Démarrer en mode Memdisk",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Revenir à ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Revenir à TreeView",
|
||||
"VTMENU_RET_TO_LISTVIEW": "Revenir à l’affichage en liste",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Revenir à l’affichage en arborescence",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Démarrer en ignorant le modèle d’auto-installation",
|
||||
"VTMENU_AUTOINS_USE": "Démarrer en chargeant le modèle d’auto-installation",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
"VTMENU_NO_PERSIST": "Démarrer sans persistance",
|
||||
"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": ""
|
||||
}
|
||||
|
@@ -77,5 +77,9 @@
|
||||
|
||||
"VTMENU_BROWER_RETURN": "लौटें",
|
||||
|
||||
"VTMENU_ENTER_EXIT": "बाहर निकलने के लिए एंटर कुंजी दबाएं",
|
||||
"VTMENU_ENTER_REBOOT": "रिबूट करने के लिए एंटर कुंजी दबाएं",
|
||||
"VTMENU_ENTER_CONTINUE": "जारी रखने के लिए एंटर कुंजी दबाएं",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
||||
|
@@ -77,5 +77,9 @@
|
||||
|
||||
"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": ""
|
||||
}
|
||||
|
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_STR_HOTKEY_LIST": "L:Bahasa F1:Help F2:Browse F3:ListView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Bahasa F1:Help F2:Browse F3:TreeView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
||||
"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:Bantuan F2:Jelajah F3:ListView F4:boot lokal F5:Alat Utilitas F6:Menu Eksternal",
|
||||
"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_G4D": "Search and boot Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Boot the 1st local disk",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Boot the 2nd local disk",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Boot the 3rd local disk",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Search and boot BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Search and boot BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Search and boot BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Search and boot xorboot",
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Mencari dan jalankan boot ke Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Mencari dan jalankan boot ke Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Jalankan boot ke disk lokal 1",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Jalankan boot ke disk lokal 2",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Jalankan boot ke disk lokal 3",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Jalankan boot ke disk lokal nomor 1 BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Mencari dan jalankan boot ke BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Mencari dan jalankan boot ke BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Mencari dan jalankan boot ke xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "File checksum",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Calculate md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Calculate sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Calculate sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Calculate sha512sum",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Calculate and check md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Calculate and check sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculate and check sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculate and check sha512sum",
|
||||
"VTMENU_FILE_CHKSUM": "Berkas checksum",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Menghitung md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Menghitung sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Menghitung sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Menghitung sha512sum",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Menghitung dan memeriksa md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Menghitung dan memeriksa sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Menghitung dan memeriksa sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Menghitung dan memeriksa sha512sum",
|
||||
|
||||
"VTMENU_POWER": "Power",
|
||||
"VTMENU_POWER_REBOOT": "Reboot",
|
||||
"VTMENU_POWER_HALT": "Halt",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Reboot to EFI setup",
|
||||
"VTMENU_POWER": "Daya",
|
||||
"VTMENU_POWER_REBOOT": "Memulai ulang",
|
||||
"VTMENU_POWER_HALT": "Mematikan",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Memulai ulang menuju EFI setup",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Keyboard Layouts",
|
||||
"VTMENU_HWINFO": "Hardware Information",
|
||||
"VTMENU_KEYBRD_LAYOUT": "Tata letak Keyboard",
|
||||
"VTMENU_HWINFO": "Informasi Perangkat Keras",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Resolution Configuration",
|
||||
"VTMENU_SCREEN_MODE": "Screen Display Mode",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Force Text Mode",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Force Graphics Mode",
|
||||
"VTMENU_RESOLUTION_CFG": "Setelan Resolusi",
|
||||
"VTMENU_SCREEN_MODE": "Mode Tampilan Layar",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Paksa ke Mode Teks",
|
||||
"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_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Tampilkan Driver EFI",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Memperbaiki Kegagalan Windows BlinitializeLibrary",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
"VTMENU_JSON_CHK_JSON": "Periksa setelan plugin (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Periksa setelan plugin global control",
|
||||
"VTMENU_JSON_CHK_THEME": "Periksa setelan plugin theme",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Periksa setelan plugin auto install",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Periksa setelan plugin persistence",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Periksa setelan plugin menu alias",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Periksa setelan plugin tip",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Periksa setelan class plugin menu",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Periksa setelan plugin injection",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Periksa setelan plugin auto memdisk",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Periksa setelan plugin image list",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Periksa setelant plugin image blacklis",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Periksa setelan plugin boot conf replace",
|
||||
"VTMENU_JSON_CHK_DUD": "Periksa setelan plugin dud",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Periksa setelan plugin password",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Boot in normal mode",
|
||||
"VTMENU_WIMBOOT_MODE": "Boot in wimboot mode",
|
||||
"VTMENU_GRUB2_MODE": "Boot in grub2 mode",
|
||||
"VTMENU_MEMDISK_MODE": "Boot in memdisk mode",
|
||||
"VTMENU_NORMAL_MODE": "Jalankan boot di mode normal",
|
||||
"VTMENU_WIMBOOT_MODE": "Jalankan boot di mode wimboot",
|
||||
"VTMENU_GRUB2_MODE": "Jalankan boot di mode grub2",
|
||||
"VTMENU_MEMDISK_MODE": "Jalankan boot di mode memdisk",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Return to ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Return to TreeView",
|
||||
"VTMENU_RET_TO_LISTVIEW": "Kembali ke ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Kembali ke TreeView",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Jalankan boot tanpa templat instalasi otomatis",
|
||||
"VTMENU_AUTOINS_USE": "Jalankan boot dengan",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
"VTMENU_NO_PERSIST": "Jalankan boot tanpa persistence",
|
||||
"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": ""
|
||||
}
|
||||
|
@@ -77,5 +77,9 @@
|
||||
|
||||
"VTMENU_BROWER_RETURN": "戻る",
|
||||
|
||||
"VTMENU_ENTER_EXIT": "Enterキーを押して終了します",
|
||||
"VTMENU_ENTER_REBOOT": "Enterキーを押して再起動します",
|
||||
"VTMENU_ENTER_CONTINUE": "Enterキーを押して続行します",
|
||||
|
||||
"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_ENTER_EXIT": "Enter 키를 눌러 종료",
|
||||
"VTMENU_ENTER_REBOOT": "Enter 키를 눌러 재부팅",
|
||||
"VTMENU_ENTER_CONTINUE": "계속하려면 Enter 키를 누르십시오",
|
||||
|
||||
"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_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_TREE": "L:Língua F1:Ajuda F2:Navegar F3:TreeView F4:Inicialização local F5:Ferramentas F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Idioma F1:Ajuda F2:Navegar F3:Estrutura F4:Arranque local F5:Ferramentas F6:Sair",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Idioma F1:Ajuda F2:Navegar F3:Estrutura F4:Arranque local F5:Ferramentas F6:Sair",
|
||||
"VTMENU_RETURN_PREVIOUS": "Voltar ao menu anterior [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Seleção de idioma do menu",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Pesquise e inicialize o Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Pesquise e inicialize o Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Inicialize o 1º disco local",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Inicialize o segundo disco local",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Inicialize o terceiro disco local",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Pesquise e inicialize o BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Pesquise e inicialize o BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Pesquise e inicialize o BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Pesquise e inicialize o xorboot",
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Pesquisar e iniciar o Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Pesquisar e iniciar o Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Arrancar o 1º disco local",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Arrancar o 2º disco local",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Arrancar o 3º disco local",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Pesquisar e iniciar o BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Pesquisar e iniciar o BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Pesquisar e iniciar o BOOTAA64.EFI",
|
||||
"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_SHA1_CALC": "Calcular SHA1",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Calcular SHA256",
|
||||
@@ -27,55 +27,59 @@
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calcular e verificar SHA256",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calcular e verificar SHA512",
|
||||
|
||||
"VTMENU_POWER": "Fonte de energia",
|
||||
"VTMENU_POWER_REBOOT": "Reinício",
|
||||
"VTMENU_POWER": "Energia",
|
||||
"VTMENU_POWER_REBOOT": "Reiniciar",
|
||||
"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_HWINFO": "Informações de hardware",
|
||||
"VTMENU_KEYBRD_LAYOUT": "Esquemas de teclado",
|
||||
"VTMENU_HWINFO": "Informação do hardware",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Configuração de resolução",
|
||||
"VTMENU_SCREEN_MODE": "Screen Modo de exibição",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Modo de texto",
|
||||
"VTMENU_RESOLUTION_CFG": "Configuração da resolução",
|
||||
"VTMENU_SCREEN_MODE": "Modo de exibição",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Modo texto",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Modo gráfico",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Seleção de tema",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Mostrar controladores EFI",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Corrigir falha BlinitializeLibrary do Windows",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
"VTMENU_JSON_CHK_JSON": "Verificar configuração do plugin json (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Verificar a configuração do plugin de controlo global",
|
||||
"VTMENU_JSON_CHK_THEME": "Verificar configuração do plugin do tema",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Verificar a configuração do plugin de instalação automática",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Verificar a configuração do plugin de persistência",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Verificar a configuração do plugin do menu alias",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Verificar a configuração do plugin do menu de dica",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Verificar a configuração do plugin do menu classe",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Verificar a configuração do plugin de injeção",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Verificar a configuração do plugin automático do memdisk",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Verificar configuração do plugin da lista de imagens",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Verificar configuração do plugin da lista negra de imagens",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Verificar a configuração do plugin de substituição de conf. de arranque",
|
||||
"VTMENU_JSON_CHK_DUD": "Verificar configuração do plugin dud",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Verificar configuração do plugin palavra-passe",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Inicializar no modo normal",
|
||||
"VTMENU_WIMBOOT_MODE": "Inicializar no modo wimboot",
|
||||
"VTMENU_GRUB2_MODE": "Inicializar no modo grub2",
|
||||
"VTMENU_MEMDISK_MODE": "Inicializar no modo memdisk",
|
||||
"VTMENU_NORMAL_MODE": "Arrancar no modo normal",
|
||||
"VTMENU_WIMBOOT_MODE": "Arrancar no modo wimboot",
|
||||
"VTMENU_GRUB2_MODE": "Arrancar no modo grub2",
|
||||
"VTMENU_MEMDISK_MODE": "Arrancar no modo memdisk",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Retornar para ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Retornar para TreeView",
|
||||
"VTMENU_RET_TO_LISTVIEW": "Voltar para Lista",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Voltar para Estrutura",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Arrancar sem modelo de instalação automática",
|
||||
"VTMENU_AUTOINS_USE": "Arrancar com",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
"VTMENU_NO_PERSIST": "Arrancar sem persistência",
|
||||
"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": ""
|
||||
}
|
||||
|
@@ -77,5 +77,9 @@
|
||||
|
||||
"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": "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": ""
|
||||
}
|
||||
|
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_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": ""
|
||||
}
|
||||
|
@@ -77,5 +77,9 @@
|
||||
|
||||
"VTMENU_BROWER_RETURN": "返回",
|
||||
|
||||
"VTMENU_ENTER_EXIT": "按回车键退出",
|
||||
"VTMENU_ENTER_REBOOT": "按回车键重启",
|
||||
"VTMENU_ENTER_CONTINUE": "按回车键继续",
|
||||
|
||||
"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_CLUSTER":"حجم الكتلة",
|
||||
"STR_PART_CLUSTER_DEFAULT":"القيمة الافتراضية للنظام",
|
||||
"STR_DONATE":"يتبرع",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -122,8 +123,8 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Ianə",
|
||||
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -186,7 +187,8 @@
|
||||
"STR_PART_FS":"파일 시스템",
|
||||
"STR_PART_CLUSTER":"클러스터 크기",
|
||||
"STR_PART_CLUSTER_DEFAULT":"시스템 기본값",
|
||||
|
||||
"STR_DONATE":"기부",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -249,6 +251,7 @@
|
||||
"STR_PART_FS":"文件系统",
|
||||
"STR_PART_CLUSTER":"簇大小",
|
||||
"STR_PART_CLUSTER_DEFAULT":"系统默认值",
|
||||
"STR_DONATE":"捐助",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -312,6 +315,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Donate",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -320,6 +324,7 @@
|
||||
"FontFamily": "Courier New",
|
||||
"FontSize": 16,
|
||||
"Author": "44f33",
|
||||
|
||||
"STR_ERROR": "შეცდომა",
|
||||
"STR_WARNING": "გაფრთხილება",
|
||||
"STR_INFO": "ინფორმაცია",
|
||||
@@ -374,6 +379,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"შემოწირულობა",
|
||||
|
||||
"STRXXX": ""
|
||||
},
|
||||
@@ -437,6 +443,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"اهداء",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -500,6 +507,7 @@
|
||||
"STR_PART_FS":"System plików",
|
||||
"STR_PART_CLUSTER":"Wielkość klastra",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Wartość domyślna systemu",
|
||||
"STR_DONATE":"Podarować",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -563,6 +571,7 @@
|
||||
"STR_PART_FS":"Sistema de arquivo",
|
||||
"STR_PART_CLUSTER":"Tamanho do cluster",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Valor padrão do sistema",
|
||||
"STR_DONATE":"Doar",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -626,6 +635,7 @@
|
||||
"STR_PART_FS":"Dosya Sistemi",
|
||||
"STR_PART_CLUSTER":"Sektör Boyutu",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Sistem varsayılan değeri",
|
||||
"STR_DONATE":"Bağış yapmak",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -689,6 +699,7 @@
|
||||
"STR_PART_FS":"Dateisystem",
|
||||
"STR_PART_CLUSTER":"Clustergröße",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Systemstandardwert",
|
||||
"STR_DONATE":"Spenden",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -752,6 +763,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Donate",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -815,7 +827,8 @@
|
||||
"STR_PART_FS":"Système de fichiers",
|
||||
"STR_PART_CLUSTER":"Taille de cluster",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Valeur par défaut du système",
|
||||
|
||||
"STR_DONATE":"Faire un don",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -878,6 +891,7 @@
|
||||
"STR_PART_FS":"Souborový systém",
|
||||
"STR_PART_CLUSTER":"Velikost clusteru",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Výchozí hodnota systému",
|
||||
"STR_DONATE":"Darovat",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -940,6 +954,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Darovať",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1003,6 +1018,7 @@
|
||||
"STR_PART_FS":"Sistema de archivos",
|
||||
"STR_PART_CLUSTER":"Tamaño de cluster",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
||||
"STR_DONATE":"Donar",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1066,70 +1082,72 @@
|
||||
"STR_PART_FS":"Sistema de archivos",
|
||||
"STR_PART_CLUSTER":"Tamaño de cluster",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
||||
"STR_DONATE":"Donar",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
"name":"Russian (Pусский)",
|
||||
"name":"Russian (Русский)",
|
||||
"FontFamily":"Courier New",
|
||||
"FontSize":16,
|
||||
"Author":"BL4CKH47H4CK3R, Teraskull, thehugonote, wiz64, dmitrygribenchuk",
|
||||
"Author":"Dmitry Yerokhin, BL4CKH47H4CK3R, Teraskull, thehugonote, wiz64, dmitrygribenchuk, Темак",
|
||||
|
||||
"STR_ERROR":"Ошибка",
|
||||
"STR_WARNING":"Предупреждение",
|
||||
"STR_WARNING":"Внимание",
|
||||
"STR_INFO":"Информация",
|
||||
"STR_INCORRECT_DIR":"Пожалуйста, запустите в другом каталоге!",
|
||||
"STR_INCORRECT_TREE_DIR":"Не запускайте меня здесь, пожалуйста, загрузите выпущенный установочный пакет и запустите его в другом месте.",
|
||||
"STR_INCORRECT_DIR":"Запустите в другой папке!",
|
||||
"STR_INCORRECT_TREE_DIR":"Не запускайте приложение здесь, загрузите установочный пакет и запустите его в другом месте.",
|
||||
"STR_DEVICE":"Устройство",
|
||||
"STR_LOCAL_VER":"Ventoy в пакете",
|
||||
"STR_DISK_VER":"Ventoy на устройстве",
|
||||
"STR_STATUS":"Статус - ГОТОВ",
|
||||
"STR_LOCAL_VER":"Вентой в пакете",
|
||||
"STR_DISK_VER":"Вентой на накопителе",
|
||||
"STR_STATUS":"Состояние — ГОТОВ",
|
||||
"STR_INSTALL":"Установить",
|
||||
"STR_UPDATE":"Обновить",
|
||||
"STR_UPDATE_TIP":"Обновление безопасно, ISO-файлы останутся без изменений.#@Продолжить?",
|
||||
"STR_INSTALL_TIP":"Диск будет отформатирован и все данные будут потеряны.#@Продолжить?",
|
||||
"STR_INSTALL_TIP2":"Диск будет отформатирован и все данные будут потеряны.#@Вы действительно хотите продолжить?",
|
||||
"STR_INSTALL_SUCCESS":"Поздравляем!#@Ventoy был успешно установлен на устройство.",
|
||||
"STR_INSTALL_FAILED":"Во время установки Ventoy произошла ошибка. Переподключите устройство и попробуйте снова. Проверьте файл log.txt для получения подробной информации.",
|
||||
"STR_UPDATE_SUCCESS":"Поздравляем!#@Ventoy был успешно обновлен на устройстве.",
|
||||
"STR_UPDATE_FAILED":"Во время обновления Ventoy произошла ошибка. Переподключите устройство и попробуйте снова. Проверьте файл log.txt для получения подробной информации.",
|
||||
"STR_WAIT_PROCESS":"Процесс запущен, пожалуйста подождите...",
|
||||
"STR_MENU_OPTION":"Опции",
|
||||
"STR_UPDATE_TIP":"Обновление безопасно, ISO-образы останутся без изменений.#@Продолжить?",
|
||||
"STR_INSTALL_TIP":"Это действие отформатирует накопитель, все данные на нём будут уничтожены.#@Продолжить?",
|
||||
"STR_INSTALL_TIP2":"Это действие отформатирует накопитель, все данные на нём будут уничтожены.#@Вы действительно хотите продолжить?",
|
||||
"STR_INSTALL_SUCCESS":"Поздравляем!#@Установка Вентоя на устройстве успешно выполнена.",
|
||||
"STR_INSTALL_FAILED":"Ошибка при установке. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями. Если ошибка не исчезает, см. «FAQ» на официальном сайте.",
|
||||
"STR_UPDATE_SUCCESS":"Поздравляем!#@Обновление Вентоя на устройстве успешно выполнено.",
|
||||
"STR_UPDATE_FAILED":"Ошибка при обновлении Вентоя. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями. Если ошибка не исчезает, см. «FAQ» на официальном сайте.",
|
||||
"STR_WAIT_PROCESS":"Действие запущено, подождите...",
|
||||
"STR_MENU_OPTION":"Настройки",
|
||||
"STR_MENU_SECURE_BOOT":"Поддержка Secure Boot",
|
||||
"STR_MENU_PART_CFG":"Дополнительный раздел",
|
||||
"STR_BTN_OK":"ОК",
|
||||
"STR_BTN_OK":"OK",
|
||||
"STR_BTN_CANCEL":"Отмена",
|
||||
"STR_PRESERVE_SPACE":"Создать дополнительный раздел в конце диска",
|
||||
"STR_SPACE_VAL_INVALID":"Неверное значение размера раздела",
|
||||
"STR_MENU_CLEAR":"Удалить Ventoy",
|
||||
"STR_CLEAR_SUCCESS":"Ventoy был успешно удалён с устройства.",
|
||||
"STR_CLEAR_FAILED":"Во время удаления Ventoy произошла ошибка. Переподключите устройство и попробуйте снова. Проверьте файл log.txt для получения подробной информации.",
|
||||
"STR_SPACE_VAL_INVALID":"Недействительное значение размера раздела",
|
||||
"STR_MENU_CLEAR":"Удалить Вентой",
|
||||
"STR_CLEAR_SUCCESS":"Удаление Вентоя с устройства успешно выполнено.",
|
||||
"STR_CLEAR_FAILED":"Ошибка при удалении Вентоя. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями.",
|
||||
"STR_MENU_PART_STYLE":"Стиль разметки разделов",
|
||||
"STR_DISK_2TB_MBR_ERROR":"Пожалуйста, выберите GPT для дисков более 2ТБ",
|
||||
"STR_SHOW_ALL_DEV":"Показать все устройства",
|
||||
"STR_PART_ALIGN_4KB":"Выровнять разделы с размером 4КБ",
|
||||
"STR_DISK_2TB_MBR_ERROR":"Для накопителей объёмом более 2 ТБ выберите GPT",
|
||||
"STR_SHOW_ALL_DEV":"Показывать все устройства",
|
||||
"STR_PART_ALIGN_4KB":"Выравнивать разделы с кластерами по 4 КБ",
|
||||
"STR_WEB_COMMUNICATION_ERR":"Ошибка связи:",
|
||||
"STR_WEB_REMOTE_ABNORMAL":"Ошибка связи: Удаленное соединение недействительно",
|
||||
"STR_WEB_REQUEST_TIMEOUT":"Ошибка связи: Истекло время ожидания запроса",
|
||||
"STR_WEB_SERVICE_UNAVAILABLE":"Ошибка связи: Служба недоступна",
|
||||
"STR_WEB_TOKEN_MISMATCH":"Статус демона обновлен. Повторите попытку позже.",
|
||||
"STR_WEB_REMOTE_ABNORMAL":"Ошибка связи: удалённое соединение недействительно",
|
||||
"STR_WEB_REQUEST_TIMEOUT":"Ошибка связи: истекло время ожидания запроса",
|
||||
"STR_WEB_SERVICE_UNAVAILABLE":"Ошибка связи: служба недоступна",
|
||||
"STR_WEB_TOKEN_MISMATCH":"Состояние службы обновлено, повторите попытку позже.",
|
||||
"STR_WEB_SERVICE_BUSY":"Служба занята, повторите попытку позже.",
|
||||
"STR_MENU_VTSI_CREATE":"Создать файл VTSI",
|
||||
"STR_VTSI_CREATE_TIP":"На этот раз Ventoy не будет установлен на устройство, а будет только создан файл VTSI#@Продолжить?",
|
||||
"STR_VTSI_CREATE_SUCCESS":"Файл VTSI создан успешно!#@Вы можете использовать Rufus(3.15+), чтобы записать его на устройство, для завершения установки Ventoy.",
|
||||
"STR_VTSI_CREATE_FAILED":"Ошибка создания файла VTSI.",
|
||||
"STR_MENU_VTSI_CREATE":"Создать файл .vtsi",
|
||||
"STR_VTSI_CREATE_TIP":"Вместо установки Вентоя на накопитель будет создан только vtsi-файл.#@Продолжить?",
|
||||
"STR_VTSI_CREATE_SUCCESS":"Файл .vtsi успешно создан.#@Вы можете записать его на накопитель с помощью приложения Rufus (v3.15+), чтобы завершить установку Вентоя.",
|
||||
"STR_VTSI_CREATE_FAILED":"Ошибка создания vtsi-файла.",
|
||||
"STR_MENU_PART_RESIZE":"Неразрушающая установка",
|
||||
"STR_PART_RESIZE_TIP":"Ventoy попробует неразрушающую установку, если это возможно. #@Продолжить?",
|
||||
"STR_PART_RESIZE_SUCCESS":"Поздравляем!#@Неразрушающая установка Ventoy успешно завершена.",
|
||||
"STR_PART_RESIZE_FAILED":"Не удалось выполнить неразрушающую установку, проверьте файл log.txt для получения подробной информации.",
|
||||
"STR_PART_RESIZE_UNSUPPORTED":"Неразрушающая установка Ventoy остановлена, поскольку некоторые условия не могут быть выполнены. Проверьте файл log.txt для получения подробной информации.",
|
||||
"STR_INSTALL_YES_TIP1":"Предупреждение: Данные будут потеряны!",
|
||||
"STR_INSTALL_YES_TIP2":"Пожалуйста, введите YES в текстовое поле ниже, чтобы подтвердить, что вы действительно хотите выполнить новую установку вместо обновления.",
|
||||
"STR_PART_VENTOY_FS":"Файловая система для Ventoy раздела",
|
||||
"STR_PART_FS":"Файловая система",
|
||||
"STR_PART_CLUSTER":"Размер кластера",
|
||||
"STR_PART_RESIZE_TIP":"Вентой попробует выполнить неразрушающую установку. #@Продолжить?",
|
||||
"STR_PART_RESIZE_SUCCESS":"Поздравляем!#@Неразрушающая установка Вентоя успешно выполнена.",
|
||||
"STR_PART_RESIZE_FAILED":"Не удалось выполнить неразрушающую установку, см. файл log.txt с подробностями.",
|
||||
"STR_PART_RESIZE_UNSUPPORTED":"Неразрушающая установка Вентоя остановлена из-за несоответствия некоторым требованиям. См. файл log.txt с подробностями.",
|
||||
"STR_INSTALL_YES_TIP1":"ВНИМАНИЕ: все данные будут потеряны!",
|
||||
"STR_INSTALL_YES_TIP2":"Введите «YES» в текстовом поле ниже, чтобы подтвердить, что вы действительно хотите выполнить новую установку, а не обновление.",
|
||||
"STR_PART_VENTOY_FS":"Файловая система для раздела Вентоя",
|
||||
"STR_PART_FS":"Тип:",
|
||||
"STR_PART_CLUSTER":"Размер кластера:",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Системное значение по умолчанию",
|
||||
|
||||
"STR_DONATE":"Пожертвовать",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -1192,6 +1210,7 @@
|
||||
"STR_PART_FS":"ফাইল সিস্টেম",
|
||||
"STR_PART_CLUSTER":"ক্লাস্টারের আকার",
|
||||
"STR_PART_CLUSTER_DEFAULT":"সিস্টেমের ডিফল্ট মান",
|
||||
"STR_DONATE":"দান করুন",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1255,6 +1274,7 @@
|
||||
"STR_PART_FS":"फाइल सिस्टम",
|
||||
"STR_PART_CLUSTER":"क्लस्टर साइज",
|
||||
"STR_PART_CLUSTER_DEFAULT":"सिस्टम डिफ़ॉल्ट मान",
|
||||
"STR_DONATE":"दान देना",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1275,13 +1295,13 @@
|
||||
"STR_STATUS":"Status - KLAAR",
|
||||
"STR_INSTALL":"Installeren",
|
||||
"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_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_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_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_MENU_OPTION":"Opties",
|
||||
"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_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_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_PART_ALIGN_4KB":"Partities uitlijnen met 4 KB",
|
||||
"STR_WEB_COMMUNICATION_ERR":"Communicatiefout:",
|
||||
@@ -1302,7 +1322,7 @@
|
||||
"STR_WEB_REQUEST_TIMEOUT":"Communicatiefout: time-out van verzoek",
|
||||
"STR_WEB_SERVICE_UNAVAILABLE":"Communicatiefout: service niet beschikbaar",
|
||||
"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_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.",
|
||||
@@ -1312,13 +1332,14 @@
|
||||
"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_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_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_TIP1":"Waarschuwing: alle gegevens zullen verloren gaan!",
|
||||
"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_FS":"Bestandssysteem",
|
||||
"STR_PART_CLUSTER":"Clustergrootte",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Standaardwaarde systeem",
|
||||
|
||||
"STR_DONATE":"Doneer",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -1381,7 +1402,8 @@
|
||||
"STR_PART_FS":"Sistemul de fișiere",
|
||||
"STR_PART_CLUSTER":"Dimensiunea clusterului",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Valoarea implicită a sistemului",
|
||||
|
||||
"STR_DONATE":"Donează",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -1444,6 +1466,7 @@
|
||||
"STR_PART_FS":"ファイルシステム",
|
||||
"STR_PART_CLUSTER":"クラスターサイズ",
|
||||
"STR_PART_CLUSTER_DEFAULT":"システムのデフォルト値",
|
||||
"STR_DONATE":"寄付",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1507,6 +1530,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Dimensione del grappolo",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Valore predefinito di sistema",
|
||||
"STR_DONATE":"Donare",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1570,6 +1594,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Donirajte",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1633,10 +1658,11 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Adományoz",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
{
|
||||
"name":"Traditional Chinese(正體中文)",
|
||||
"FontFamily":"新細明體",
|
||||
"FontSize":14,
|
||||
@@ -1696,6 +1722,7 @@
|
||||
"STR_PART_FS":"文件系統",
|
||||
"STR_PART_CLUSTER":"簇的大小",
|
||||
"STR_PART_CLUSTER_DEFAULT":"系統默認值",
|
||||
"STR_DONATE":"捐助",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1759,6 +1786,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Donate",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1767,7 +1795,7 @@
|
||||
"FontFamily":"Courier New",
|
||||
"FontSize":16,
|
||||
"Author":"Bojan Maksimović, panickingkernel, Zoran Jankov",
|
||||
|
||||
|
||||
"STR_ERROR":"Грешка",
|
||||
"STR_WARNING":"Упозорење",
|
||||
"STR_INFO":"Информација",
|
||||
@@ -1822,6 +1850,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Донирајте",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -1885,7 +1914,8 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
|
||||
"STR_DONATE":"บริจาค",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -1893,7 +1923,7 @@
|
||||
"FontFamily":"Courier New",
|
||||
"FontSize":16,
|
||||
"Author":"Stein-Ove Bøthun",
|
||||
|
||||
|
||||
"STR_ERROR":"Feil",
|
||||
"STR_WARNING":"Advarsel",
|
||||
"STR_INFO":"Info",
|
||||
@@ -1948,7 +1978,8 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
|
||||
"STR_DONATE":"donere",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -2011,6 +2042,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"quyên tặng",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2074,6 +2106,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"paaukoti",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2137,7 +2170,8 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
|
||||
"STR_DONATE":"донира",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -2200,6 +2234,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"לִתְרוֹם",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2211,7 +2246,7 @@
|
||||
|
||||
"STR_ERROR":"Erro",
|
||||
"STR_WARNING":"Aviso",
|
||||
"STR_INFO":"Info",
|
||||
"STR_INFO":"Informação",
|
||||
"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_DEVICE":"Dispositivo",
|
||||
@@ -2252,18 +2287,19 @@
|
||||
"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_FAILED":"Falha no ficheiro VTSI criado.",
|
||||
"STR_MENU_PART_RESIZE":"Non-destructive Install",
|
||||
"STR_PART_RESIZE_TIP":"Ventoy will try non-destructive installation if possible. #@Continue?",
|
||||
"STR_PART_RESIZE_SUCCESS":"Congratulations!#@Ventoy non-destructive installation successfully finished.",
|
||||
"STR_PART_RESIZE_FAILED":"Non-destructive installation failed, Check log.txt for details.",
|
||||
"STR_PART_RESIZE_UNSUPPORTED":"Ventoy non-destructive installation stopped because some conditions cannot be met. Check log.txt for details.",
|
||||
"STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
|
||||
"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_PART_VENTOY_FS":"File System For Ventoy Partition",
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
|
||||
"STR_MENU_PART_RESIZE":"Instalação não destrutiva",
|
||||
"STR_PART_RESIZE_TIP":"O Ventoy tentará uma instalação não destrutiva, se possível. #@Continuar?",
|
||||
"STR_PART_RESIZE_SUCCESS":"Parabéns!#@Instalação não destrutiva do Ventoy concluída com sucesso.",
|
||||
"STR_PART_RESIZE_FAILED":"Falha na instalação não destrutiva. Leia o ficheiro log.txt para mais detalhes.",
|
||||
"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":"Aviso: Os dados serão perdidos!",
|
||||
"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":"Sistema de ficheiros para a partição Ventoy",
|
||||
"STR_PART_FS":"Sistema de ficheiros",
|
||||
"STR_PART_CLUSTER":"Tamanho do cluster",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Valor predefinido do sistema",
|
||||
"STR_DONATE":"Doar",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -2326,6 +2362,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Menyumbangkan",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2389,6 +2426,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Donere",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2397,7 +2435,7 @@
|
||||
"FontFamily":"Courier New",
|
||||
"FontSize":16,
|
||||
"Author":"Teraskull, thehugonote, dmitrygribenchuk",
|
||||
|
||||
|
||||
"STR_ERROR":"Помилка",
|
||||
"STR_WARNING":"Попередження",
|
||||
"STR_INFO":"Інформація",
|
||||
@@ -2452,6 +2490,7 @@
|
||||
"STR_PART_FS":"Файлова система",
|
||||
"STR_PART_CLUSTER":"Розмір кластера",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Системне значення за умовчанням",
|
||||
"STR_DONATE":"Пожертвуйте",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2515,9 +2554,11 @@
|
||||
"STR_PART_FS":"Σύστημα αρχείων",
|
||||
"STR_PART_CLUSTER":"Μέγεθος συμπλέγματος",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Προεπιλεγμένη τιμή συστήματος",
|
||||
"STR_DONATE":"Προσφέρω",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Swedish (Svenska)",
|
||||
"FontFamily":"Courier New",
|
||||
@@ -2578,6 +2619,7 @@
|
||||
"STR_PART_FS":"Filsystem",
|
||||
"STR_PART_CLUSTER":"Klusterstorlek",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Systemets standardvärde",
|
||||
"STR_DONATE":"Donera",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2641,6 +2683,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Donirajte",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2704,6 +2747,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Дарете",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2712,7 +2756,7 @@
|
||||
"FontFamily":"Courier New",
|
||||
"FontSize":16,
|
||||
"Author":"Egho",
|
||||
|
||||
|
||||
"STR_ERROR":"Սխալ",
|
||||
"STR_WARNING":"Զգուշացում",
|
||||
"STR_INFO":"Տեղեկություն",
|
||||
@@ -2767,6 +2811,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Նվիրաբերել",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2830,6 +2875,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Lahjoittaa",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2893,6 +2939,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Doa",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -2956,6 +3003,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"Donar",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -3020,6 +3068,7 @@
|
||||
"STR_PART_FS":"File System",
|
||||
"STR_PART_CLUSTER":"Cluster Size",
|
||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||
"STR_DONATE":"შემოწირულობა",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
@@ -3083,7 +3132,8 @@
|
||||
"STR_PART_FS":"கோப்பு முறைமை",
|
||||
"STR_PART_CLUSTER":"கொத்து அளவு",
|
||||
"STR_PART_CLUSTER_DEFAULT":"கணினி இயல்புநிலை மதிப்பு",
|
||||
|
||||
"STR_DONATE":"தானம் செய்",
|
||||
|
||||
"STRXXX":""
|
||||
},
|
||||
{
|
||||
@@ -3106,9 +3156,9 @@
|
||||
"STR_UPDATE_TIP":"Абнаўленне бяспечна, ISO-файлы застануцца без змен. #@Працягнуць?",
|
||||
"STR_INSTALL_TIP":"Дыск будзе адфарматаваны і ўсе дадзеныя будуць страчаныя. #@Працягнуць?",
|
||||
"STR_INSTALL_TIP2":"Дыск будзе адфарматаваны і ўсе дадзеныя будуць страчаныя. #@ Вы сапраўды жадаеце працягнуць?",
|
||||
"STR_INSTALL_SUCCESS":"Віншуем! # @ Ventoy быў паспяхова ўстаноўлены на прыладу.",
|
||||
"STR_INSTALL_SUCCESS":"Віншуем! #@ Ventoy быў паспяхова ўстаноўлены на прыладу.",
|
||||
"STR_INSTALL_FAILED":"Падчас усталёўкі Ventoy адбылася памылка. Перападлучыце прыладу і паспрабуйце зноў. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
||||
"STR_UPDATE_SUCCESS":"Віншуем! # @ Ventoy быў паспяхова абноўлены на прыладзе.",
|
||||
"STR_UPDATE_SUCCESS":"Віншуем! #@ Ventoy быў паспяхова абноўлены на прыладзе.",
|
||||
"STR_UPDATE_FAILED":"Падчас абнаўлення Ventoy адбылася памылка. Перападлучыце прыладу і паспрабуйце зноў. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
||||
"STR_WAIT_PROCESS":"Працэс запушчаны, калі ласка пачакайце...",
|
||||
"STR_MENU_OPTION":"Параметры",
|
||||
@@ -3133,11 +3183,11 @@
|
||||
"STR_WEB_SERVICE_BUSY":"Служба занятая, паспрабуйце пазней.",
|
||||
"STR_MENU_VTSI_CREATE":"Стварыць файл 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_MENU_PART_RESIZE":"Неразбуральная ўстаноўка",
|
||||
"STR_PART_RESIZE_TIP":"Ventoy паспрабуе неразбуральную ўстаноўку, калі гэта магчыма. #@Працягнуць?",
|
||||
"STR_PART_RESIZE_SUCCESS":"Віншуем! # @ Неразбуральная ўстаноўка Ventoy паспяхова завершана.",
|
||||
"STR_PART_RESIZE_SUCCESS":"Віншуем! #@ Неразбуральная ўстаноўка Ventoy паспяхова завершана.",
|
||||
"STR_PART_RESIZE_FAILED":"Не атрымалася выканаць неразбуральную ўстаноўку, праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
||||
"STR_PART_RESIZE_UNSUPPORTED":"Неразбуральная ўстаноўка Ventoy спынена, паколькі некаторыя ўмовы не могуць быць выкананы. Праверце файл log.txt для атрымання падрабязнай інфармацыі.",
|
||||
"STR_INSTALL_YES_TIP1":"Папярэджанне: Дадзеныя будуць страчаныя!",
|
||||
@@ -3146,7 +3196,8 @@
|
||||
"STR_PART_FS":"Файлавая сістэма",
|
||||
"STR_PART_CLUSTER":"Памер кластара",
|
||||
"STR_PART_CLUSTER_DEFAULT":"Сістэмнае значэнне па змаўчанні",
|
||||
|
||||
"STR_DONATE":"Ахвяраваць",
|
||||
|
||||
"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
|
||||
|
||||
**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**
|
||||
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
|
||||
*
|
||||
* 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
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
@@ -26,6 +27,22 @@
|
||||
#include "Ventoy2Disk.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 ret;
|
||||
@@ -85,7 +102,7 @@ BOOL DISK_ChangeVtoyEFIAttr(int DriveIndex, UINT64 Offset, UINT64 Attr)
|
||||
BOOL ret;
|
||||
|
||||
ret = VDS_ChangeVtoyEFIAttr(DriveIndex, Offset, Attr);
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -118,29 +135,51 @@ typedef struct
|
||||
PCHAR Output;
|
||||
} TEXTOUTPUT, * PTEXTOUTPUT;
|
||||
|
||||
// Callback command types
|
||||
typedef enum
|
||||
{
|
||||
PROGRESS,
|
||||
DONEWITHSTRUCTURE,
|
||||
UNKNOWN2,
|
||||
UNKNOWN3,
|
||||
UNKNOWN4,
|
||||
UNKNOWN5,
|
||||
INSUFFICIENTRIGHTS,
|
||||
UNKNOWN7,
|
||||
UNKNOWN8,
|
||||
UNKNOWN9,
|
||||
UNKNOWNA,
|
||||
DONE,
|
||||
UNKNOWNC,
|
||||
UNKNOWND,
|
||||
OUTPUT,
|
||||
STRUCTUREPROGRESS
|
||||
} CALLBACKCOMMAND;
|
||||
/* Callback command types (some errorcode were filled from HPUSBFW V2.2.3 and their
|
||||
designation from docs.microsoft.com/windows/win32/api/vds/nf-vds-ivdsvolumemf2-formatex */
|
||||
typedef enum {
|
||||
FCC_PROGRESS,
|
||||
FCC_DONE_WITH_STRUCTURE,
|
||||
FCC_UNKNOWN2,
|
||||
FCC_INCOMPATIBLE_FILE_SYSTEM,
|
||||
FCC_UNKNOWN4,
|
||||
FCC_UNKNOWN5,
|
||||
FCC_ACCESS_DENIED,
|
||||
FCC_MEDIA_WRITE_PROTECTED,
|
||||
FCC_VOLUME_IN_USE,
|
||||
FCC_CANT_QUICK_FORMAT,
|
||||
FCC_UNKNOWNA,
|
||||
FCC_DONE,
|
||||
FCC_BAD_LABEL,
|
||||
FCC_UNKNOWND,
|
||||
FCC_OUTPUT,
|
||||
FCC_STRUCTURE_PROGRESS,
|
||||
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
|
||||
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
|
||||
@@ -167,36 +206,87 @@ typedef VOID(__stdcall* PFORMATEX)(PWCHAR DriveRoot,
|
||||
DWORD ClusterSize,
|
||||
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
|
||||
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;
|
||||
PBOOLEAN status;
|
||||
|
||||
switch (Command)
|
||||
{
|
||||
case PROGRESS:
|
||||
switch (Command) {
|
||||
case FCC_PROGRESS:
|
||||
percent = (PDWORD)Argument;
|
||||
Log("Format percent: %d \n", *percent);
|
||||
Log("Format percent: %u%%", *percent);
|
||||
break;
|
||||
|
||||
case OUTPUT:
|
||||
case FCC_STRUCTURE_PROGRESS: // No progress on quick format
|
||||
Log("Creating file system...");
|
||||
break;
|
||||
|
||||
case DONE:
|
||||
case FCC_DONE:
|
||||
status = (PBOOLEAN)Argument;
|
||||
if (*status == FALSE)
|
||||
{
|
||||
Log("Format error: %u ERROR_NOT_SUPPORTED=%u", LASTERR, ERROR_NOT_SUPPORTED);
|
||||
g_dll_format_error = 1;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -244,7 +334,7 @@ BOOL DLL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
||||
g_dll_format_error = 0;
|
||||
|
||||
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);
|
||||
|
||||
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)
|
||||
{
|
||||
int i;
|
||||
DWORD ClusterSize = 0;
|
||||
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();
|
||||
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);
|
||||
if (!ret)
|
||||
for (i = 0; astFmtFunc[i].formatFunc; i++)
|
||||
{
|
||||
ret = VDS_FormatVolume(DriveLetter, fs, ClusterSize);
|
||||
if (!ret)
|
||||
Log("%s ...", astFmtFunc[i].name);
|
||||
ret = astFmtFunc[i].formatFunc(DriveLetter, fs, ClusterSize);
|
||||
if (ret)
|
||||
{
|
||||
ret = DSPT_FormatVolume(DriveLetter, fs, ClusterSize);
|
||||
if (!ret)
|
||||
{
|
||||
ret = PSHELL_FormatVolume(DriveLetter, fs, ClusterSize);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -58,6 +58,8 @@ BOOL VDS_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
||||
BOOL DSPT_CleanDisk(int DriveIndex);
|
||||
BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
||||
|
||||
BOOL CMD_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
||||
|
||||
//powershell.exe
|
||||
BOOL PSHELL_CleanDisk(int DriveIndex);
|
||||
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_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize);
|
||||
|
||||
const CHAR* DISK_GetWindowsDir(void);
|
||||
|
||||
//
|
||||
// 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
|
||||
|
@@ -30,7 +30,7 @@ STATIC BOOL IsDiskpartExist(void)
|
||||
{
|
||||
BOOL ret;
|
||||
|
||||
ret = IsFileExist("C:\\Windows\\system32\\diskpart.exe");
|
||||
ret = IsFileExist("%s\\system32\\diskpart.exe", DISK_GetWindowsDir());
|
||||
if (!ret)
|
||||
{
|
||||
Log("diskpart.exe not exist");
|
||||
@@ -39,6 +39,20 @@ STATIC BOOL IsDiskpartExist(void)
|
||||
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)
|
||||
{
|
||||
CHAR CmdBuf[MAX_PATH];
|
||||
@@ -71,6 +85,29 @@ STATIC BOOL DSPT_CommProc(const char *Cmd)
|
||||
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)
|
||||
{
|
||||
CHAR CmdBuf[128];
|
||||
@@ -90,6 +127,7 @@ BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
||||
{
|
||||
const char* fsname = NULL;
|
||||
CHAR CmdBuf[256];
|
||||
CHAR FsName[128];
|
||||
|
||||
Log("FormatVolumeByDiskpart <%C:>", DriveLetter);
|
||||
|
||||
@@ -108,8 +146,72 @@ BOOL DSPT_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
||||
{
|
||||
sprintf_s(CmdBuf, sizeof(CmdBuf), "select volume %C:\r\nformat FS=%s LABEL=Ventoy QUICK OVERRIDE\r\n", DriveLetter, fsname);
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@@ -29,15 +29,9 @@
|
||||
|
||||
STATIC BOOL IsPowershellExist(void)
|
||||
{
|
||||
BOOL ret;
|
||||
BOOL ret;
|
||||
|
||||
if (!IsWindows8OrGreater())
|
||||
{
|
||||
Log("This is before Windows8 powershell disk not supported.");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ret = IsFileExist("C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe");
|
||||
ret = IsFileExist("%s\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", DISK_GetWindowsDir());
|
||||
if (!ret)
|
||||
{
|
||||
Log("powershell.exe not exist");
|
||||
@@ -261,6 +255,7 @@ BOOL PSHELL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
||||
BOOL ret;
|
||||
const char* fsname = NULL;
|
||||
CHAR CmdBuf[512];
|
||||
CHAR FsName[128];
|
||||
|
||||
fsname = GetVentoyFsFmtNameByTypeA(fs);
|
||||
|
||||
@@ -279,5 +274,26 @@ BOOL PSHELL_FormatVolume(char DriveLetter, int fs, DWORD ClusterSize)
|
||||
|
||||
ret = PSHELL_CommProc(CmdBuf);
|
||||
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_DEFAULT, //53
|
||||
|
||||
STR_DONATE, //54
|
||||
|
||||
STR_ID_MAX
|
||||
}STR_ID;
|
||||
|
||||
|
@@ -725,12 +725,13 @@ int VentoyProcSecureBoot(BOOL SecureBoot)
|
||||
fl_fclose(file);
|
||||
|
||||
Log("Now delete all efi files ...");
|
||||
fl_remove("/EFI/BOOT/BOOTX64.EFI");
|
||||
fl_remove("/EFI/BOOT/grubx64.efi");
|
||||
fl_remove("/EFI/BOOT/BOOTX64.EFI");
|
||||
fl_remove("/EFI/BOOT/grubx64.efi");
|
||||
fl_remove("/EFI/BOOT/grubx64_real.efi");
|
||||
fl_remove("/EFI/BOOT/MokManager.efi");
|
||||
fl_remove("/EFI/BOOT/mmx64.efi");
|
||||
fl_remove("/ENROLL_THIS_KEY_IN_MOKMANAGER.cer");
|
||||
fl_remove("/EFI/BOOT/grub.efi");
|
||||
|
||||
file = fl_fopen("/EFI/BOOT/BOOTX64.EFI", "wb");
|
||||
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)
|
||||
{
|
||||
@@ -1698,6 +1737,7 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
|
||||
int i;
|
||||
int rc = 0;
|
||||
int state = 0;
|
||||
BOOL ReformatOK;
|
||||
HANDLE hDrive;
|
||||
DWORD dwSize;
|
||||
BOOL bRet;
|
||||
@@ -1710,6 +1750,7 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
|
||||
UINT64 Part1SectorCount = 0;
|
||||
UINT64 Part2StartSector = 0;
|
||||
BOOL LargeFAT32 = FALSE;
|
||||
BOOL DefaultExFAT = FALSE;
|
||||
|
||||
Log("#####################################################");
|
||||
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;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (GetVentoyFsType() == VTOY_FS_EXFAT && GetClusterSize() == 0)
|
||||
{
|
||||
Log("Formatting part1 exFAT ...");
|
||||
DefaultExFAT = TRUE;
|
||||
if (0 != FormatPart1exFAT(pPhyDrive->SizeInBytes))
|
||||
{
|
||||
Log("FormatPart1exFAT failed.");
|
||||
@@ -1832,7 +1874,16 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
|
||||
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);
|
||||
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 (LargeFAT32)
|
||||
@@ -1963,22 +2020,39 @@ End:
|
||||
Log("No need to reformat for large FAT32");
|
||||
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);
|
||||
|
||||
if ((GetVentoyFsType() != VTOY_FS_UDF) && (pPhyDrive->VentoyFsClusterSize < 2048))
|
||||
{
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
Log("### Invalid cluster size %d ###", pPhyDrive->VentoyFsClusterSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
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
|
||||
@@ -1986,6 +2060,30 @@ End:
|
||||
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");
|
||||
}
|
||||
else
|
||||
@@ -2002,14 +2100,15 @@ End:
|
||||
Log("###### [Error:] Virtual Disk Service (VDS) Unavailable ######");
|
||||
Log("###### [Error:] Virtual Disk Service (VDS) Unavailable ######");
|
||||
}
|
||||
|
||||
CHECK_CLOSE_HANDLE(hDrive);
|
||||
}
|
||||
|
||||
if (pGptInfo)
|
||||
{
|
||||
free(pGptInfo);
|
||||
}
|
||||
|
||||
CHECK_CLOSE_HANDLE(hDrive);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
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_REFORMAT_START,
|
||||
PT_REFORMAT_FINISH = PT_REFORMAT_START + 2,
|
||||
PT_REFORMAT_FINISH = PT_REFORMAT_START + 16,
|
||||
|
||||
PT_FINISH
|
||||
}PROGRESS_POINT;
|
||||
@@ -355,6 +355,9 @@ void InitComboxCtrl(HWND hWnd, int PhyDrive);
|
||||
int disk_io_is_write_error(void);
|
||||
void disk_io_reset_write_error(void);
|
||||
const char* GUID2String(void* guid, char* buf, int len);
|
||||
void VentoyStringToUpper(CHAR* str);
|
||||
BOOL AlertSuppressInit(void);
|
||||
void SetAlertPromptHookEnable(BOOL enable);
|
||||
|
||||
#define VTSI_SUPPORT 1
|
||||
|
||||
|
Binary file not shown.
@@ -342,6 +342,7 @@
|
||||
</Manifest>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AlertSuppress.c" />
|
||||
<ClCompile Include="crc32.c" />
|
||||
<ClCompile Include="DiskService.c" />
|
||||
<ClCompile Include="DiskService_diskpart.c" />
|
||||
|
@@ -96,6 +96,9 @@
|
||||
<ClCompile Include="YesDialog.c">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="AlertSuppress.c">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Ventoy2Disk.h">
|
||||
|
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user