-/******************************************************************************
- * Language.h
- *
- * 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/>.
- *
- */
-
-#ifndef __LANGUAGE_H__
-#define __LANGUAGE_H__
-
-typedef enum STR_ID
-{
- STR_ERROR = 0,
- STR_WARNING,
- STR_INFO,
- STR_INCORRECT_DIR,
-
- STR_DEVICE,
- STR_LOCAL_VER,
- STR_DISK_VER,
- STR_STATUS,
- STR_INSTALL,
- STR_UPDATE,
-
- STR_UPDATE_TIP,
- STR_INSTALL_TIP,
- STR_INSTALL_TIP2,
-
- STR_INSTALL_SUCCESS,
- STR_INSTALL_FAILED,
- STR_UPDATE_SUCCESS,
- STR_UPDATE_FAILED,
-
- STR_WAIT_PROCESS,
-
-
- STR_ID_MAX
-}STR_ID;
-
-const TCHAR * GetString(enum STR_ID ID);
-
-#define _G(a) GetString(a)
-
-#endif
+/******************************************************************************\r
+ * Language.h\r
+ *\r
+ * Copyright (c) 2020, longpanda <admin@ventoy.net>\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License as\r
+ * published by the Free Software Foundation; either version 3 of the\r
+ * License, or (at your option) any later version.\r
+ * \r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
+ * General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.\r
+ *\r
+ */\r
+ \r
+#ifndef __LANGUAGE_H__\r
+#define __LANGUAGE_H__\r
+\r
+\r
+typedef enum STR_ID\r
+{\r
+ STR_ERROR = 0,\r
+ STR_WARNING, // 1\r
+ STR_INFO, // 2\r
+ STR_INCORRECT_DIR, //3\r
+ STR_INCORRECT_TREE_DIR, //4\r
+\r
+ STR_DEVICE, //5\r
+ STR_LOCAL_VER, //6\r
+ STR_DISK_VER, //7\r
+ STR_STATUS, //8\r
+ STR_INSTALL, //9\r
+ STR_UPDATE, //10\r
+\r
+ STR_UPDATE_TIP, //11\r
+ STR_INSTALL_TIP, //12\r
+ STR_INSTALL_TIP2,//13\r
+\r
+ STR_INSTALL_SUCCESS,//14\r
+ STR_INSTALL_FAILED,//15\r
+ STR_UPDATE_SUCCESS,//16\r
+ STR_UPDATE_FAILED,//17\r
+\r
+ STR_WAIT_PROCESS,//18\r
+\r
+ STR_MENU_OPTION,//19\r
+ STR_MENU_SECURE_BOOT,//20\r
+\r
+ STR_MENU_PART_CFG,//21\r
+ STR_BTN_OK,//22\r
+ STR_BTN_CANCEL,//23\r
+ STR_PRESERVE_SPACE,//24\r
+ STR_SPACE_VAL_INVALID,//25\r
+\r
+ STR_MENU_CLEAR, //26\r
+ STR_CLEAR_SUCCESS, //27\r
+ STR_CLEAR_FAILED, //28\r
+ STR_MENU_PART_STYLE, //29\r
+ STR_DISK_2TB_MBR_ERROR,//30\r
+\r
+ STR_SHOW_ALL_DEV, //31\r
+ STR_PART_ALIGN_4KB, //32\r
+ STR_WEB_COMMUNICATION_ERR, //33\r
+ STR_WEB_REMOTE_ABNORMAL, //34\r
+ STR_WEB_REQUEST_TIMEOUT, //35\r
+ STR_WEB_SERVICE_UNAVAILABLE, //36\r
+ STR_WEB_TOKEN_MISMATCH, //37\r
+ STR_WEB_SERVICE_BUSY, //38\r
+\r
+ STR_MENU_VTSI_CREATE, //39\r
+ STR_VTSI_CREATE_TIP, //40\r
+ STR_VTSI_CREATE_SUCCESS, //41\r
+ STR_VTSI_CREATE_FAILED, //42\r
+\r
+ STR_ID_MAX\r
+}STR_ID;\r
+\r
+extern BOOL g_SecureBoot;\r
+\r
+#define VTOY_MENU_SECURE_BOOT 0xA000\r
+#define VTOY_MENU_PART_CFG 0xA001\r
+#define VTOY_MENU_CLEAN 0xA002\r
+#define VTOY_MENU_PART_STYLE 0xA003\r
+#define VTOY_MENU_PART_MBR 0xA004\r
+#define VTOY_MENU_PART_GPT 0xA005\r
+#define VTOY_MENU_ALL_DEV 0xA006\r
+#define VTOY_MENU_VTSI 0xA007\r
+\r
+\r
+typedef enum OPT_SUBMENU\r
+{\r
+ OPT_SUBMENU_SECURE_BOOT = 0,\r
+ OPT_SUBMENU_PART_STYLE,\r
+ OPT_SUBMENU_PART_CFG,\r
+ OPT_SUBMENU_CLEAR,\r
+ OPT_SUBMENU_ALL_DEV,\r
+ OPT_SUBMENU_VTSI,\r
+\r
+ OPT_SUBMENU_MAX\r
+}OPT_SUBMENU;\r
+\r
+\r
+#define VTOY_MENU_LANGUAGE_BEGIN 0xB000\r
+\r
+\r
+#define VENTOY_LANGUAGE_INI TEXT(".\\ventoy\\languages.ini")\r
+#define VENTOY_LANGUAGE_JSON TEXT(".\\ventoy\\languages.json")\r
+#define VENTOY_LANGUAGE_INI_A ".\\ventoy\\languages.ini"\r
+#define VENTOY_LANGUAGE_JSON_A ".\\ventoy\\languages.json"\r
+\r
+#define VENTOY_CFG_INI TEXT(".\\Ventoy2Disk.ini")\r
+#define VENTOY_CFG_INI_A ".\\Ventoy2Disk.ini"\r
+#define VENTOY_MAX_LANGUAGE 200\r
+\r
+#define GET_INI_STRING(Section, Key, Buf) GetPrivateProfileString(Section, Key, TEXT("#"), Buf, sizeof(Buf), VENTOY_LANGUAGE_INI)\r
+\r
+\r
+\r
+typedef struct VENTOY_LANGUAGE\r
+{\r
+ WCHAR Name[128];\r
+ WCHAR FontFamily[64];\r
+ int FontSize;\r
+\r
+ WCHAR StrId[STR_ID_MAX][64];\r
+ WCHAR MsgString[STR_ID_MAX][1024];\r
+\r
+}VENTOY_LANGUAGE;\r
+\r
+extern VENTOY_LANGUAGE *g_cur_lang_data;\r
+\r
+const TCHAR * GetString(enum STR_ID ID);\r
+\r
+#define _G(a) GetString(a)\r
+\r
+typedef enum UNICODE_ICON\r
+{\r
+ UNICODE_LOCK = 0,\r
+ UNICODE_BUTT\r
+}UNICODE_ICON;\r
+\r
+const UINT16 * GetUnicodeIcon(icon);\r
+#define _UICON(i) GetUnicodeIcon(i)\r
+\r
+#endif\r