Compare commits

..

13 Commits

Author SHA1 Message Date
longpanda
82e99a3b37 1.0.65 release 2022-02-04 17:05:14 +08:00
Sopor
b685431d66 Update Swedish language (#1415) 2022-02-03 12:08:42 +08:00
Guillem
8be8fd50b3 Add catalan language (#1407) 2022-02-03 12:08:27 +08:00
heidiwenger
999b15c4ef Update languages.json (#1401)
Finnish language update
2022-02-03 12:07:31 +08:00
longpanda
28998edd94 Add check for size in CreatePersistentImg.sh (#1384) 2022-01-15 09:13:46 +08:00
longpanda
2ad69decad issue template update 2022-01-15 09:00:48 +08:00
longpanda
c2cc0bd3dc update tip message for VTOY_DEFAULT_SEARCH_ROOT (#1373) 2022-01-14 09:09:57 +08:00
longpanda
b128a0b6d3 fix the page language display issue in VentoyPlugson 2022-01-13 11:03:55 +08:00
longpanda
676831dbbe fix typo 2022-01-12 11:10:15 +08:00
longpanda
e5fa5e6d84 VTOY_LINUX_REMOUNT support for both 64bit(x86_64) and 32bit(i386) linux distro. 2022-01-12 10:24:44 +08:00
longpanda
76a6b8061c fix plugson page language issue 2022-01-11 09:39:01 +08:00
longpanda
036b58ff0c add intree flag for ko 2022-01-10 19:14:39 +08:00
longpanda
8e529c8559 Fix Plugson Web update issue. 2022-01-10 19:02:29 +08:00
21 changed files with 213 additions and 47 deletions

View File

@@ -21,7 +21,7 @@ body:
attributes:
label: Ventoy Version
description: What version of ventoy are you running?
placeholder: 1.0.63
placeholder: 1.0.65
validations:
required: true
- type: dropdown

View File

@@ -27,6 +27,10 @@ jobs:
with:
name: ventoy-livecd
path: INSTALL/ventoy-*livecd*
- uses: actions/upload-artifact@v2
with:
name: SHA256SUM
path: INSTALL/sha256.txt
- uses: actions/upload-artifact@v2
with:
name: xxx-build-log

View File

@@ -68,9 +68,17 @@ static volatile ko_param g_ko_param =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
#if defined(CONFIG_X86_64)
#define PATCH_OP_POS 3
#define CODE_MATCH(code, i) \
(code[i] == 0x40 && code[i + 1] == 0x80 && code[i + 2] == 0xce && code[i + 3] == 0x80)
#elif defined(CONFIG_X86_32)
#define PATCH_OP_POS 2
#define CODE_MATCH(code, i) \
(code[i] == 0x80 && code[i + 1] == 0xca && code[i + 2] == 0x80 && code[i + 3] == 0xe8)
#else
#error "unsupported arch"
#endif
#define vdebug(fmt, args...) if(kprintf) kprintf(KERN_ERR fmt, ##args)
@@ -88,7 +96,7 @@ static int notrace dmpatch_replace_code(unsigned long addr, unsigned long size,
{
if (CODE_MATCH(opCode, i) && cnt < MAX_PATCH)
{
patch[cnt] = opCode + i + 3;
patch[cnt] = opCode + i + PATCH_OP_POS;
cnt++;
}
}

View File

@@ -1,5 +1,5 @@
1. install ubuntu 21.10
2. apt-get install build-essential flex ncurse linux-headers-generic linux-source ...... and so on
2. apt-get install build-essential flex libncurses-dev linux-headers-generic linux-source libssl-dev ...... and so on
3. cp /lib/modules/5.13.0-23-generic/build/Module.symvers ./
4. /boot/config-5.13.0-23-generic as .config make oldconfig
5. make menuconfig
@@ -9,6 +9,7 @@
6. modify ./scripts/mod/modpost.c
1. skip add_srcversion (just return)
2. force add_retpoline (#ifdef --> #ifndef)
3. force add_intree_flag
7. make modules_prepare LOCALVERSION=-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

View File

@@ -54,8 +54,15 @@ fi
if [ -f $VTOY_PATH/autoinstall ]; then
echo "Do auto install ..." >> $VTLOG
if $GREP -q "^mount /proc$" /init; then
$SED "/^mount \/proc/a export file=$VTOY_PATH/autoinstall; export auto='true'; export priority='critical'" -i /init
if $GREP -q '^autoinstall:' $VTOY_PATH/autoinstall; then
echo "cloud-init auto install ..." >> $VTLOG
if $GREP -q "maybe_break init" /init; then
$SED "/maybe_break init/i $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/ventoy-cloud-init.sh \$rootmnt" -i /init
fi
else
if $GREP -q "^mount /proc$" /init; then
$SED "/^mount \/proc/a export file=$VTOY_PATH/autoinstall; export auto='true'; export priority='critical'" -i /init
fi
fi
fi

View File

@@ -0,0 +1,63 @@
#!/ventoy/busybox/sh
#************************************************************************************
# Copyright (c) 2020, longpanda <admin@ventoy.net>
#
# 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/>.
#
#************************************************************************************
. /ventoy/hook/ventoy-hook-lib.sh
vtlog "####### $0 $* ########"
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
newroot=$1
dd if=/dev/zero of=$newroot/tmp/cidata.img bs=1M count=8 status=none
freeloop=$(losetup -f)
losetup $freeloop $newroot/tmp/cidata.img
mkfs.vfat -n CIDATA $freeloop
mkdir /tmpcidata
mount $newroot/tmp/cidata.img /tmpcidata
vtSplit=$(grep VENTOY_META_DATA_SPLIT $VTOY_PATH/autoinstall | wc -l)
if [ $vtSplit -eq 1 ]; then
vtlog "split autoinstall script to user-data and meta-data"
vtLine=$(grep -n VENTOY_META_DATA_SPLIT $VTOY_PATH/autoinstall | awk -F: '{print $1}')
vtLine1=$(expr $vtLine - 1)
vtLine2=$(expr $vtLine + 1)
vtlog "Line number: $vtLine $vtLine1 $vtLine2"
sed -n "1,${vtLine1}p" $VTOY_PATH/autoinstall >/tmpcidata/user-data
sed -n "${vtLine2},\$p" $VTOY_PATH/autoinstall >/tmpcidata/meta-data
else
vtlog "only user-data avaliable"
cp -a $VTOY_PATH/autoinstall /tmpcidata/user-data
touch /tmpcidata/meta-data
fi
umount /tmpcidata
rm -rf /tmpcidata
vtCMD=$(cat /proc/cmdline)
echo "autoinstall $vtCMD" > $newroot/tmp/kcmdline
mount --bind $newroot/tmp/kcmdline /proc/cmdline
PATH=$VTPATH_OLD

View File

@@ -256,6 +256,8 @@ ventoy_dm_patch() {
if echo $vtMType | $EGREP -i -q "x86.64|amd64"; then
vtKoName=dm_patch_64.ko
elif echo $vtMType | $EGREP -i -q "i[3-6]86"; then
vtKoName=dm_patch_32.ko
else
vtlog "unsupported machine type $vtMType"
return

Binary file not shown.

View File

@@ -56,10 +56,15 @@ fi
# check size
if echo $size | grep -q "^[0-9][0-9]*$"; then
if [ $size -le 1 ]; then
echo "Invalid size $size"
exit 1
vtMinSize=1
if echo $fstype | grep -q '^xfs$'; then
vtMinSize=16
fi
if [ $size -lt $vtMinSize ]; then
echo "size too small ($size)"
exit 1
fi
else
echo "Invalid size $size"
exit 1

View File

@@ -2022,7 +2022,7 @@ function img_unsupport_menuentry {
#############################################################
#############################################################
set VENTOY_VERSION="1.0.64"
set VENTOY_VERSION="1.0.65"
#ACPI not compatible with Window7/8, so disable by default
set VTOY_PARAM_NO_ACPI=1

View File

@@ -217,4 +217,6 @@ else
fi
rm -f log.txt
rm -f sha256.txt
sha256sum ventoy-${curver}-* > sha256.txt

View File

@@ -2156,11 +2156,11 @@
"STR_VTSI_CREATE_TIP":"Den här gången skrivs det inget till enheten, utan det skapas endast en VTSI-fil#@Fortsätta?",
"STR_VTSI_CREATE_SUCCESS":"VTSI-filen skapad!#@Använd Rufus (3.15+) till att skriva till enheten för att slutföra installationen av Ventoy.",
"STR_VTSI_CREATE_FAILED":"Misslyckades med att skapa VTSI-filen.",
"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_MENU_PART_RESIZE":"Icke-förstörande installation",
"STR_PART_RESIZE_TIP":"Om det är möjligt kommer Ventoy att försöka göra en icke-förstörande installation. #@Fortsätta?",
"STR_PART_RESIZE_SUCCESS":"Gratulerar!#@Ventoy lyckades slutföra en icke-förstörande installation.",
"STR_PART_RESIZE_FAILED":"Ventoy misslyckades slutföra en icke-förstörande installation. Mer information finns i log.txt.",
"STR_PART_RESIZE_UNSUPPORTED":"Icke-förstörande installation stoppades eftersom vissa villkor inte kunde uppfyllas. Mer information finns i log.txt.",
"STRXXX":""
},
@@ -2384,11 +2384,11 @@
"STR_VTSI_CREATE_TIP":"Tällä kerralla laitteeseen ei kirjoiteta, vaan luodaan ainoastaan VTSI -tiedosto#@Jatketaanko?",
"STR_VTSI_CREATE_SUCCESS":"VTSI -tiedosto luotiin onnistuneesti!#@Voit käyttää Rufus-ohjelmaa(3.15+) kirjoittaaksesi sen laitteeseen viimeistelläksesi Ventoy-asennuksen.",
"STR_VTSI_CREATE_FAILED":"VTSI -tiedoston luominen epäonnistui.",
"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_MENU_PART_RESIZE":"Ei-tuhoisa asennus",
"STR_PART_RESIZE_TIP":"Ventoy kokeilee ei-tuhoisaa asennusta mikäli tämä on mahdollista. #@Jatketaanko?",
"STR_PART_RESIZE_SUCCESS":"Onnittelut!#@Ventoyn ei-tuhoisa asennus saapui päätökseen onnistuneesti.",
"STR_PART_RESIZE_FAILED":"Ei-tuhoisa asennusmuoto epäonnistui, tarkista log.txt nähdäksesi yksityiskohtaiset tiedot.",
"STR_PART_RESIZE_UNSUPPORTED":"Ventoyn ei-tuhoisa asennus pysähtyi koska jotkut ehdot eivät täyttyneet. Tarkista log.txt nähdäksesi yksityiskohdat.",
"STRXXX":""
},
@@ -2447,6 +2447,63 @@
"STR_PART_RESIZE_FAILED":"Erro na instalación non destructiva, revisa o arquivo log.txt para ver os detalles.",
"STR_PART_RESIZE_UNSUPPORTED":"Instalación non destructiva do Ventoy interrompida porque non se poden cumprir algunhas condicións. Revisa o arquivo log.txt para mais detalles.",
"STRXXX":""
},
{
"name":"Catalan (Català)",
"FontFamily":"Courier New",
"FontSize":16,
"Author":"guillemglez",
"STR_ERROR":"Error",
"STR_WARNING":"Avís",
"STR_INFO":"Info",
"STR_INCORRECT_DIR":"Cal executar-ho en el directori correcte!",
"STR_INCORRECT_TREE_DIR":"No m'executis aquí, si us plau, baixa el paquet d'instal·lació publicat i executa-ho allí.",
"STR_DEVICE":"Dispositiu",
"STR_LOCAL_VER":"Ventoy localment",
"STR_DISK_VER":"Ventoy al dispositiu",
"STR_STATUS":"Estat - Llest",
"STR_INSTALL":"Instal·la",
"STR_UPDATE":"Actualitza",
"STR_UPDATE_TIP":"L'actualització és segura i els fitxers ISO no es veuran afectats.#@Continuar?",
"STR_INSTALL_TIP":"El dispositiu serà formatat i totes les dades es perdran.#@Continuar?",
"STR_INSTALL_TIP2":"El dispositiu serà formatat i totes les dades es perdran.#@Continuar? (Confirmeu)",
"STR_INSTALL_SUCCESS":"Enhorabona!#@Ventoy s'ha instal·lat al vostre dispositiu de forma satisfactòria.",
"STR_INSTALL_FAILED":"Hi ha hagut un error durant el procés d'instal·lació. Podeu desconnectar i tornar-lo a connectar i provar-ho de nou. Comproveu el fitxer log.txt per a més detalls. Si això passa sovint visiteu el FAQs a la nostra pàgina oficial.",
"STR_UPDATE_SUCCESS":"Enhorabona!#@Ventoy s'ha actualitzat al vostre dispositiu de forma satisfactòria.",
"STR_UPDATE_FAILED":"Hi ha hagut un error durant el procés d'actualització. Podeu desconnectar i tornar-lo a connectar i provar-ho de nou. Comproveu el fitxer log.txt per a més detalls. Si això passa sovint visiteu el FAQs a la nostra pàgina oficial.",
"STR_WAIT_PROCESS":"Hi ha una operació en curs, espereu si us plau...",
"STR_MENU_OPTION":"Opcions",
"STR_MENU_SECURE_BOOT":"Arrencada segura",
"STR_MENU_PART_CFG":"Ajustaments de partició",
"STR_BTN_OK":"D'acord",
"STR_BTN_CANCEL":"Cancel·la",
"STR_PRESERVE_SPACE":"Preserva espai al final del disc",
"STR_SPACE_VAL_INVALID":"Valor d'espai reservat invàlid",
"STR_MENU_CLEAR":"Esborra el Ventoy",
"STR_CLEAR_SUCCESS":"Ventoy s'ha esborrat satisfactòriament del dispositiu.",
"STR_CLEAR_FAILED":"Hi ha hagut un error mentre s'esborrava Ventoy del dispositiu. Podeu desconnectar i tornar-lo a connectar i provar-ho de nou. Comproveu el fitxer log.txt per a més detalls.",
"STR_MENU_PART_STYLE":"Estil de partició",
"STR_DISK_2TB_MBR_ERROR":"Sel·leccioneu GPT per dispositius de més de 2 TB",
"STR_SHOW_ALL_DEV":"Mostra tots els dispositius",
"STR_PART_ALIGN_4KB":"Alinea les particions a 4 KB",
"STR_WEB_COMMUNICATION_ERR":"Error de comunicació:",
"STR_WEB_REMOTE_ABNORMAL":"Error de comunicació: anomalia al servidor",
"STR_WEB_REQUEST_TIMEOUT":"Error de comunicació: s'ha esgotat el temps d'espera",
"STR_WEB_SERVICE_UNAVAILABLE":"Error de comunicació: servei no disponible",
"STR_WEB_TOKEN_MISMATCH":"S'ha actualitzat l'estat del dimoni, torneu a provar-ho més tard.",
"STR_WEB_SERVICE_BUSY":"El servei està sobrecarregat, torneu a provar-ho més tard.",
"STR_MENU_VTSI_CREATE":"Genera un fitxer VTSI",
"STR_VTSI_CREATE_TIP":"Aquest cop no s'escriuran els canvis al dispositiu, sinó que es generarà un fitxer VTSI#@Continuar?",
"STR_VTSI_CREATE_SUCCESS":"El fitxer VTSI s'ha creat satisfactòriament!#@Pots fer servir Rufus(3.15+) per escriure'l al dispositiu i completar així la instal·lació de Ventoy.",
"STR_VTSI_CREATE_FAILED":"No s'ha pogut crear el fitxer VTSI",
"STR_MENU_PART_RESIZE":"Instal·lació no destructiva",
"STR_PART_RESIZE_TIP":"El Ventoy intentarà una instal·lació no destructiva si és possible. #@Continuar?",
"STR_PART_RESIZE_SUCCESS":"Enhorabona!#@La instal·lació no destructiva s'ha completat de forma satisfactòria.",
"STR_PART_RESIZE_FAILED":"Hi ha hagut un error durant el procés d'instal·lació no destructiva, comproveu el fitxer log.txt per a més detalls.",
"STR_PART_RESIZE_UNSUPPORTED":"La instal·lació no destructiva de Ventoy no ha estat possible perquè els requeriments no es compleixen. Comproveu el fitxer log.txt per a més detalls.",
"STRXXX":""
}
]

View File

@@ -299,6 +299,7 @@ static int VentoyFillProtectMBR(uint64_t DiskSizeBytes, MBR_HEAD *pMBR)
vdebug("Disk signature: 0x%08x\n", DiskSignature);
memcpy(pMBR->BootCode + 0x1B8, &DiskSignature, 4);
memcpy(pMBR->BootCode + 0x180, &Guid, 16);
DiskSectorCount = DiskSizeBytes / 512 - 1;
if (DiskSectorCount > 0xFFFFFFFF)
@@ -490,6 +491,7 @@ int ventoy_fill_mbr(uint64_t size, uint64_t reserve, int align4k, MBR_HEAD *pMBR
vdebug("Disk signature: 0x%08x\n", DiskSignature);
memcpy(pMBR->BootCode + 0x1B8, &DiskSignature, 4);
memcpy(pMBR->BootCode + 0x180, &Guid, 16);
if (size / 512 > 0xFFFFFFFF)
{

View File

@@ -107,8 +107,8 @@
var id = $(this).attr('id');
var value = $(this).val();
var intval;
if (id.length <= 16) {
if (typeof(id) == 'undefined' || id.length <= 16) {
return;
}
@@ -146,7 +146,7 @@
var id = $(this).attr('id');
var checked = $(this).is(':checked');
if (id.length <= 14) {
if (typeof(id) == 'undefined' || id.length <= 14) {
return;
}
@@ -156,9 +156,11 @@
if (id.startsWith('id_timeout_en_')) {
textid = 'input[id=id_text_timeout_' + index + ']';
value = data.timeout;
data.timeouten = checked;
} else {
textid = 'input[id=id_text_autosel_' + index + ']';
value = data.autosel;
data.autoselen = checked;
}
if (checked) {
@@ -277,7 +279,9 @@
$('input[type=text]').each(function (){
var id = $(this).attr('id');
if (typeof(id) == 'undefined') {
return;
}
if (id.startsWith('id_text_timeout_') || id.startsWith('id_text_autosel_')) {
$(this).change(OnInputTextChange);
}
@@ -285,6 +289,9 @@
$('input[type=checkbox]').each(function (){
var id = $(this).attr('id');
if (typeof(id) == 'undefined') {
return;
}
if (id.startsWith('id_timeout_en_') || id.startsWith('id_autosel_en_')) {
$(this).click(OnCheckBoxChange);
}

View File

@@ -61,15 +61,17 @@
<td class="td_ctrl_col">选项说明</td>
<td>
指定搜索ISO文件的根目录。默认Ventoy会搜索U盘上的所有目录和子目录当你U盘上有海量的文件时这个过程会很慢。<br/>
这种情况下你可以把ISO文件单独放在某个目录下然后通过这个变量来指定搜索路径此时Ventoy就只会搜索该目录及其子目录。
这种情况下你可以把ISO文件单独放在某个目录下然后通过这个变量来指定搜索路径此时Ventoy就只会搜索该目录及其子目录。<br/>
注意这里不能设置为U盘根目录必须为一个子目录。
</td>
</tr>
<tr id="tr_title_desc_en">
<td class="td_ctrl_col">Option Description</td>
<td>
The root path where to search the image files. By default, Ventoy will search all the directories and subdirectories in the USB. This will be very slow when you have huge number of files in the USB.
In this case, you can put all the image files in one directory and use this to specify the search path.
After that Ventoy will only search this directory and its subdirectories for image files.
In this case, you can put all the image files in one subdirectory and use this to specify the search path.
After that Ventoy will only search this directory and its subdirectories for image files.<br/>
Note: the path must not be the mountpoint of the first partition, but a subdirectory.
</td>
</tr>
</table>
@@ -1182,7 +1184,7 @@
$('input[type=radio]').each(function(){
var id = $(this).attr('id');
if (id.startsWith('id_ctrl')) {
if (typeof(id) != 'undefined' && id.startsWith('id_ctrl')) {
$(this).change(VtoySaveCurrentPage);
}
});

View File

@@ -176,7 +176,7 @@
$('input[type=radio]').each(function(){
var id = $(this).attr('id');
if (id.startsWith('id_image_list_type')) {
if (typeof(id) != 'undefined' && id.startsWith('id_image_list_type')) {
$(this).change(VtoySaveCurrentPage);
}
});

View File

@@ -108,7 +108,7 @@
var value = $(this).val();
var intval;
if (id.length <= 16) {
if (typeof(id) == 'undefined' || id.length <= 16) {
return;
}
@@ -146,7 +146,7 @@
var id = $(this).attr('id');
var checked = $(this).is(':checked');
if (id.length <= 14) {
if (typeof(id) == 'undefined' || id.length <= 14) {
return;
}
@@ -156,14 +156,17 @@
if (id.startsWith('id_timeout_en_')) {
textid = 'input[id=id_text_timeout_' + index + ']';
value = data.timeout;
data.timeouten = checked;
} else {
textid = 'input[id=id_text_autosel_' + index + ']';
value = data.autosel;
data.autoselen = checked;
}
if (checked) {
$(textid).attr("disabled", false);
$(textid).val(value);
} else {
$(textid).attr("disabled", true);
$(textid).val('');
@@ -277,6 +280,9 @@
$('input[type=text]').each(function (){
var id = $(this).attr('id');
if (typeof(id) == 'undefined') {
return;
}
if (id.startsWith('id_text_timeout_') || id.startsWith('id_text_autosel_')) {
$(this).change(OnInputTextChange);

View File

@@ -299,7 +299,7 @@
$('input[type=radio]').each(function(){
var id = $(this).attr('id');
if (id.startsWith('id_theme_file')) {
if (typeof(id) != 'undefined' && id.startsWith('id_theme_file')) {
$(this).change(function() {
m_data_theme[current_tab_index].default_file =parseInt(id.substr(id.length - 1));
VtoySaveCurrentPage();

View File

@@ -1064,13 +1064,13 @@ var g_type_select_validator = $("#TypeSelectForm").validate({
function VtoySelectType(cb, para) {
$('#TypeSelectForm #TypeSelForm_lang_1').text(g_vtoy_cur_language.STR_SELECT);
if (g_current_language === 'en') {
$('#SetDirForm #SetDirForm_lang_2').text(" OK");
$('#SetDirForm #SetDirForm_lang_3').text("Cancel");
$('#TypeSelectForm #TypeSelForm_lang_2').text(" OK");
$('#TypeSelectForm #TypeSelForm_lang_3').text("Cancel");
} else {
$('#SetDirForm #SetDirForm_lang_2').text("确定");
$('#SetDirForm #SetDirForm_lang_3').text("取消");
$('#TypeSelectForm #TypeSelForm_lang_2').text("确定");
$('#TypeSelectForm #TypeSelForm_lang_3').text("取消");
}
var $tbl = $("#id_type_select_table tbody");
@@ -1133,11 +1133,11 @@ function VtoySetKey(cb, para) {
$('#SetKeyForm #SetKeyForm_lang_3').text(para.title2);
if (g_current_language === 'en') {
$('#SetDirForm #SetDirForm_lang_4').text(" OK");
$('#SetDirForm #SetDirForm_lang_5').text("Cancel");
$('#SetKeyForm #SetKeyForm_lang_4').text(" OK");
$('#SetKeyForm #SetKeyForm_lang_5').text("Cancel");
} else {
$('#SetDirForm #SetDirForm_lang_4').text("确定");
$('#SetDirForm #SetDirForm_lang_5').text("取消");
$('#SetKeyForm #SetKeyForm_lang_4').text("确定");
$('#SetKeyForm #SetKeyForm_lang_5').text("取消");
}
g_set_key_callback = cb;
@@ -1395,15 +1395,15 @@ function VtoySetDirFile(cb, para) {
$('#SetDirFileModal #SetDirFileForm_label2').text(para.label2);
if (g_current_language === 'en') {
$('#SetDirFileModal #SetDirFileModal_ok').text(" OK");
$('#SetDirFileModal #SetDirFileModal_cancel').text("Cancel");
$('#SetDirFileModal #SetDirFileForm_ok').text(" OK");
$('#SetDirFileModal #SetDirFileForm_cancel').text("Cancel");
$('#SetDirFileModal #id_note_dirfile_cn').hide();
$('#SetDirFileModal #id_note_dirfile_en').show();
} else {
$('#SetDirFileModal #SetDirFileModal_ok').text("确定");
$('#SetDirFileModal #SetDirFileModal_cancel').text("取消");
$('#SetDirFileModal #SetDirFileForm_ok').text("确定");
$('#SetDirFileModal #SetDirFileForm_cancel').text("取消");
$('#SetDirFileModal #id_note_dirfile_en').hide();
$('#SetDirFileModal #id_note_dirfile_cn').show();

View File

@@ -16,7 +16,7 @@ You can copy many image files at a time and ventoy will give you a boot menu to
x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and MIPS64EL UEFI are supported in the same way.<br/>
Both MBR and GPT partition style are supported in the same way.<br/>
Most type of OS supported(Windows/WinPE/Linux/Unix/ChromeOS/Vmware/Xen...) <br/>
780+ ISO files are tested (<a href="https://www.ventoy.net/en/isolist.html">List</a>). 90%+ distros in <a href="https://distrowatch.com/">distrowatch.com</a> supported (<a href="https://www.ventoy.net/en/distrowatch.html">Details</a>). <br/>
800+ ISO files are tested (<a href="https://www.ventoy.net/en/isolist.html">List</a>). 90%+ distros in <a href="https://distrowatch.com/">distrowatch.com</a> supported (<a href="https://www.ventoy.net/en/distrowatch.html">Details</a>). <br/>
<br/>Official Website: <a href=https://www.ventoy.net>https://www.ventoy.net</a>
</h4>
@@ -58,7 +58,7 @@ A GUI Ventoy plugin configurator. [VentoyPlugson](https://www.ventoy.net/en/plug
* FAT32/exFAT/NTFS/UDF/XFS/Ext2(3)(4) supported for main partition
* ISO files larger than 4GB supported
* Native boot menu style for Legacy & UEFI
* Most type of OS supported, 780+ iso files tested
* Most type of OS supported, 800+ iso files tested
* Linux vDisk boot supported
* Not only boot but also complete installation process
* Menu dynamically switchable between List/TreeView mode