From c304ec8271da3c49b28ce3b07b35d2838cc061f5 Mon Sep 17 00:00:00 2001 From: juewuy Date: Sat, 4 Apr 2026 18:44:47 +0800 Subject: [PATCH] =?UTF-8?q?~=E4=BF=AE=E5=A4=8D=E5=A4=9A=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E5=8C=96=E5=AF=BC=E8=87=B4=E7=9A=84=E4=B8=80=E7=B3=BB=E5=88=97?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/lang/chs/8_tools.lang | 60 ++++++++++++++++++++++----------- scripts/lang/chs/9_upgrade.lang | 51 ++++++++++++++++++---------- scripts/lang/chs/fw_filter.lang | 18 ++++++---- scripts/lang/chs/override.lang | 3 +- scripts/lang/en/8_tools.lang | 60 ++++++++++++++++++++++----------- scripts/lang/en/9_upgrade.lang | 51 ++++++++++++++++++---------- scripts/lang/en/fw_filter.lang | 18 ++++++---- scripts/lang/en/override.lang | 3 +- scripts/menus/2_settings.sh | 2 +- scripts/menus/8_tools.sh | 42 +++++++++++------------ scripts/menus/9_upgrade.sh | 32 +++++++++--------- scripts/menus/fw_filter.sh | 14 ++++---- scripts/menus/override.sh | 5 ++- 13 files changed, 223 insertions(+), 136 deletions(-) diff --git a/scripts/lang/chs/8_tools.lang b/scripts/lang/chs/8_tools.lang index c032befe..08b432e6 100644 --- a/scripts/lang/chs/8_tools.lang +++ b/scripts/lang/chs/8_tools.lang @@ -11,9 +11,11 @@ TOOLS_ENABLE="启用" TOOLS_CONFIGURED="已配置" TOOLS_SSH_ONLY_OPENWRT="此功能仅针对使用Openwrt系统的设备生效,且不依赖服务" TOOLS_SSH_UNSUPPORTED_SYSTEM="本功能不支持红米AX6S等镜像化系统设备,请勿尝试!" -TOOLS_SSH_PORT_ITEM="1) \033[32m修改\033[0m外网访问端口:\033[36m$ssh_port\033[0m" +TOOLS_SSH_PORT_ITEM_PREFIX="1) \033[32m修改\033[0m外网访问端口:" +TOOLS_SSH_PORT_ITEM_SUFFIX="" TOOLS_SSH_PASS_ITEM="2) \033[32m修改\033[0mSSH访问密码(请连续输入2次后回车)" -TOOLS_SSH_TOGGLE_ITEM="3) \033[33m$ssh_ol\033[0m外网访问SSH" +TOOLS_SSH_TOGGLE_ITEM_PREFIX="3) " +TOOLS_SSH_TOGGLE_ITEM_SUFFIX="外网访问SSH" TOOLS_PROMPT_PORT="请输入端口号(1000-65535)> " TOOLS_WARN_COMPAT="本页工具可能无法兼容全部Linux设备,请酌情使用!" TOOLS_DISK_USAGE="磁盘占用/所在目录:" @@ -21,10 +23,14 @@ TOOLS_MENU_TEST_ITEM="1) ShellCrash\033[33m测试菜单\033[0m" TOOLS_MENU_GUIDE_ITEM="2) ShellCrash\033[32m新手引导\033[0m" TOOLS_MENU_LOG_ITEM="3) \033[36m日志及推送工具\033[0m" TOOLS_MENU_SSH_ITEM="4) \033[32m配置\033[0m外网访问SSH" -TOOLS_MENU_MI_UPDATE_ITEM="5) \033[33m$mi_update\033[0m小米系统自动更新" -TOOLS_MENU_MI_AUTO_SSH_ITEM="6) 小米设备软固化SSH —— \033[$mi_mi_autoSSH_type \033[0m" -TOOLS_MENU_MI_TUN_FIX_ITEM="8) 小米设备Tun模块修复 —— \033[$mi_tunfix \033[0m" -TOOLS_MI_UPDATE_MSG="已\033[33m$mi_update\033[0m小米路由器的自动更新,如未生效,请在官方APP中同步设置!" +TOOLS_MENU_MI_UPDATE_ITEM_PREFIX="5) " +TOOLS_MENU_MI_UPDATE_ITEM_SUFFIX="小米系统自动更新" +TOOLS_MENU_MI_AUTO_SSH_ITEM_PREFIX="6) 小米设备软固化SSH —— " +TOOLS_MENU_MI_AUTO_SSH_ITEM_SUFFIX="" +TOOLS_MENU_MI_TUN_FIX_ITEM_PREFIX="8) 小米设备Tun模块修复 —— " +TOOLS_MENU_MI_TUN_FIX_ITEM_SUFFIX="" +TOOLS_MI_UPDATE_MSG_PREFIX="已" +TOOLS_MI_UPDATE_MSG_SUFFIX="小米路由器的自动更新,如未生效,请在官方APP中同步设置!" TOOLS_UNSUPPORTED_DEVICE="不支持的设备!" TOOLS_FETCHING_SCRIPT="正在获取在线脚本......" TOOLS_DOWNLOAD_FAIL="文件下载失败!" @@ -46,16 +52,25 @@ TOOLS_AUTO_SSH_WARN2="如有问题请加群反馈:" TOOLS_AUTO_SSH_PWD_HINT1="请输入需要还原的SSH密码(不影响当前密码)" TOOLS_AUTO_SSH_PWD_HINT2="(回车可跳过)" TOOLS_AUTO_SSH_INPUT="请输入> " -TOOLS_LOG_TG="1) Telegram推送\t——\033[$stat_TG\033[0m" -TOOLS_LOG_DEER="2) PushDeer推送\t——\033[$stat_Deer\033[0m" -TOOLS_LOG_BARK="3) Bark推送-IOS\t——\033[$stat_bark\033[0m" -TOOLS_LOG_PO="4) Passover推送\t——\033[$stat_Po\033[0m" -TOOLS_LOG_PP="5) PushPlus推送\t——\033[$stat_PP\033[0m" -TOOLS_LOG_SYNO="6) SynoChat推送\t——\033[$stat_SynoChat\033[0m" -TOOLS_LOG_GOTIFY="7) Gotify推送\t ——\033[$stat_Gotify\033[0m" +TOOLS_LOG_TG_PREFIX="1) Telegram推送\t——" +TOOLS_LOG_TG_SUFFIX="" +TOOLS_LOG_DEER_PREFIX="2) PushDeer推送\t——" +TOOLS_LOG_DEER_SUFFIX="" +TOOLS_LOG_BARK_PREFIX="3) Bark推送-IOS\t——" +TOOLS_LOG_BARK_SUFFIX="" +TOOLS_LOG_PO_PREFIX="4) Passover推送\t——" +TOOLS_LOG_PO_SUFFIX="" +TOOLS_LOG_PP_PREFIX="5) PushPlus推送\t——" +TOOLS_LOG_PP_SUFFIX="" +TOOLS_LOG_SYNO_PREFIX="6) SynoChat推送\t——" +TOOLS_LOG_SYNO_SUFFIX="" +TOOLS_LOG_GOTIFY_PREFIX="7) Gotify推送\t ——" +TOOLS_LOG_GOTIFY_SUFFIX="" TOOLS_LOG_VIEW="a) 查看\033[36m运行日志\033[0m" -TOOLS_LOG_TASK="b) 推送任务日志\t——\033[$stat_task\033[0m" -TOOLS_LOG_DEVICE="c) 设置设备名称\t——\033[$device_s\033[0m" +TOOLS_LOG_TASK_PREFIX="b) 推送任务日志\t——" +TOOLS_LOG_TASK_SUFFIX="" +TOOLS_LOG_DEVICE_PREFIX="c) 设置设备名称\t——" +TOOLS_LOG_DEVICE_SUFFIX="" TOOLS_LOG_CLEAR="d) 清空日志文件" TOOLS_CONFIRM_CLOSE_TG="是否确认关闭TG日志推送?" TOOLS_CONFIRM_CLOSE_DEER="是否确认关闭PushDeer日志推送?" @@ -120,17 +135,22 @@ TOOLS_PROXY_NOTE="注意:依赖curl(不支持wget),且测试结果不保 TOOLS_PROXY_OK="连接成功!响应时间为:" TOOLS_PROXY_TIMEOUT="连接超时!请重试或检查节点配置!" TOOLS_DEBUG_WARN1="注意:Debug运行均会停止原本的内核服务" -TOOLS_DEBUG_WARN2="后台运行日志地址:\033[32m$TMPDIR/debug.log\033[0m" +TOOLS_DEBUG_WARN2_PREFIX="后台运行日志地址:" +TOOLS_DEBUG_WARN2_SUFFIX="" TOOLS_DEBUG_WARN3="如长时间运行后台监测,日志等级推荐error!防止文件过大!" TOOLS_DEBUG_WARN4="你亦可通过:\033[33mcrash -s debug 'warning'\033[0m命令使用其他日志等级" -TOOLS_DEBUG_ITEM_1="1) 仅测试\033[32m$config_tmp\033[0m配置文件可用性" -TOOLS_DEBUG_ITEM_2="2) 前台运行\033[32m$config_tmp\033[0m配置文件,不配置防火墙劫持(\033[33m使用Ctrl+C手动停止\033[0m)" +TOOLS_DEBUG_ITEM_1_PREFIX="1) 仅测试" +TOOLS_DEBUG_ITEM_1_SUFFIX="配置文件可用性" +TOOLS_DEBUG_ITEM_2_PREFIX="2) 前台运行" +TOOLS_DEBUG_ITEM_2_SUFFIX="配置文件,不配置防火墙劫持(使用Ctrl+C手动停止)" TOOLS_DEBUG_ITEM_3="3) 后台运行完整启动流程并配置防火墙劫持,日志等级:\033[31merror\033[0m" TOOLS_DEBUG_ITEM_4="4) 后台运行完整启动流程并配置防火墙劫持,日志等级:\033[32minfo\033[0m" TOOLS_DEBUG_ITEM_5="5) 后台运行完整启动流程并配置防火墙劫持,日志等级:\033[33mdebug\033[0m" -TOOLS_DEBUG_ITEM_6="6) 后台运行完整启动流程并配置防火墙劫持,且将错误日志打印到闪存:\033[32m$CRASHDIR/debug.log\033[0m" +TOOLS_DEBUG_ITEM_6_PREFIX="6) 后台运行完整启动流程并配置防火墙劫持,且将错误日志打印到闪存:" +TOOLS_DEBUG_ITEM_6_SUFFIX="" TOOLS_DEBUG_ITEM_8="8) 后台运行完整启动流程,输出执行错误并查找上下文,之后关闭进程" -TOOLS_DEBUG_ITEM_9="9) 将\033[32m$config_tmp\033[0m下json文件合并为$TMPDIR/debug.json" +TOOLS_DEBUG_ITEM_9_PREFIX="9) 将" +TOOLS_DEBUG_ITEM_9_SUFFIX="下json文件合并为" TOOLS_FLASH_WARN="频繁写入闪存会导致闪存寿命降低,如非遇到会导致设备死机或重启的bug,请勿使用此功能!" TOOLS_FLASH_CONFIRM="是否确认启用此功能?" TOOLS_MERGE_OK="合并成功!" diff --git a/scripts/lang/chs/9_upgrade.lang b/scripts/lang/chs/9_upgrade.lang index a0c6735f..f7be375c 100644 --- a/scripts/lang/chs/9_upgrade.lang +++ b/scripts/lang/chs/9_upgrade.lang @@ -68,8 +68,10 @@ UPG_CORETYPE_CONFIRM_TEXT="请确认该自定义内核的类型:" UPG_CORE_SWITCH_KEEP_TEXT="是否保留相关数据库文件?" UPG_KEEP_TEXT="保留" UPG_NOT_KEEP_TEXT="不保留" -UPG_GETTING_CORE_TEXT="正在在线获取$crashcore核心文件......" -UPG_CORE_DOWNLOAD_OK_TEXT="$crashcore核心下载成功!" +UPG_GETTING_CORE_TEXT_PREFIX="正在在线获取" +UPG_GETTING_CORE_TEXT_SUFFIX="核心文件......" +UPG_CORE_DOWNLOAD_OK_TEXT_PREFIX="" +UPG_CORE_DOWNLOAD_OK_TEXT_SUFFIX="核心下载成功!" UPG_CORE_DOWNLOAD_FAIL_TEXT="核心文件下载失败!" UPG_CORE_DOWNLOAD_VERIFY_FAIL_TEXT="核心文件下载成功但校验失败" UPG_CORE_DOWNLOAD_VERIFY_HINT_TEXT="请尝试手动指定CPU版本" @@ -100,18 +102,25 @@ UPG_CORE_MENU_CURRENT="当前内核:" UPG_CORE_MENU_SYS="当前系统处理器架构:" UPG_CORE_MENU_LOCAL_HINT="如需本地上传,请将.upx .gz .tar.gz文件上传至 /tmp 目录后重新运行crash命令" UPG_CORE_MENU_SELECT="请选择需要使用的核心版本:" -UPG_CORE_MENU_1="1) \033[43;30mMihomo\033[0m:\033[32m$meta_v \033[32m(原meta内核)支持全面\033[0m \033[33m占用略高\033[0m" -UPG_CORE_MENU_2="2) \033[43;30mSingBoxR\033[0m:\033[32m$singboxr_v \033[32m支持全面\033[0m \033[33m使用reF1nd增强分支\033[0m" -UPG_CORE_MENU_3="3) \033[43;30mSingBox\033[0m:\033[32m$singbox_v \033[32m占用较低\033[0m \033[33m不支持providers\033[0m" -UPG_CORE_MENU_4="4) \033[43;30mClash\033[0m:\033[32m$clash_v \033[32m占用低\033[0m \033[33m不安全,已停止维护\033[0m" -UPG_CORE_MENU_5="5) 切换版本分支及压缩方式:\033[32m$zip_type\033[0m" -UPG_CORE_MENU_6="6) \033[36m使用自定义内核\033[0m $custcore" +UPG_CORE_MENU_1_PREFIX="1) \033[43;30mMihomo\033[0m:\033[32m" +UPG_CORE_MENU_1_SUFFIX=" \033[32m(原meta内核)支持全面\033[0m \033[33m占用略高\033[0m" +UPG_CORE_MENU_2_PREFIX="2) \033[43;30mSingBoxR\033[0m:\033[32m" +UPG_CORE_MENU_2_SUFFIX=" \033[32m支持全面\033[0m \033[33m使用reF1nd增强分支\033[0m" +UPG_CORE_MENU_3_PREFIX="3) \033[43;30mSingBox\033[0m:\033[32m" +UPG_CORE_MENU_3_SUFFIX=" \033[32m占用较低\033[0m \033[33m不支持providers\033[0m" +UPG_CORE_MENU_4_PREFIX="4) \033[43;30mClash\033[0m:\033[32m" +UPG_CORE_MENU_4_SUFFIX=" \033[32m占用低\033[0m \033[33m不安全,已停止维护\033[0m" +UPG_CORE_MENU_5_PREFIX="5) 切换版本分支及压缩方式:\033[32m" +UPG_CORE_MENU_5_SUFFIX="\033[0m" +UPG_CORE_MENU_6_PREFIX="6) \033[36m使用自定义内核\033[0m " +UPG_CORE_MENU_6_SUFFIX="" UPG_CORE_MENU_7="7) \033[32m更新当前内核\033[0m" UPG_CORE_MENU_9="9) 手动指定处理器架构" UPG_GEO_GETTING="正在从服务器获取数据库文件......" UPG_GEO_FAIL="文件下载失败!" UPG_GEO_EXTRACT_FAIL="文件解压失败!" -UPG_GEO_OK="$geotype数据库文件下载成功!" +UPG_GEO_OK_PREFIX="" +UPG_GEO_OK_SUFFIX="数据库文件下载成功!" UPG_GEO_LINKING="正在获取数据库文件......" UPG_GEO_FINDING="正在查找可更新的数据库文件......" UPG_GEO_SELECT="请选择需要更新的数据库文件:" @@ -126,7 +135,8 @@ UPG_GEO_LOCAL_ONLY2="(仅限SingBox-srs)" UPG_GEO_LOCAL_ONLY3="(仅限Mihomo-mrs)" UPG_GEO_LOCAL_ONLY4="(仅限Clash-GeoIP)" UPG_GEO_CUSTOM_LINK="自定义数据库链接" -UPG_GEO_CLEAN_HINT1="这将清理$CRASHDIR目录及/ruleset目录下所有数据库文件!" +UPG_GEO_CLEAN_HINT1_PREFIX="这将清理" +UPG_GEO_CLEAN_HINT1_SUFFIX="目录及/ruleset目录下所有数据库文件!" UPG_GEO_CLEAN_HINT2="清理后启动服务即可自动下载所需文件" UPG_GEO_CLEAN_CONFIRM="确认清理" UPG_GEO_CLEAN_OK="所有数据库文件均已清理!" @@ -139,7 +149,8 @@ UPG_DB_INSTALLED="检测到已经安装过本地面板" UPG_DB_UPGRADE="升级/覆盖安装" UPG_DB_CANCEL="安装已取消" UPG_DB_DIR_SELECT="请选择面板安装目录:" -UPG_DB_DIR_1="1) 在${CRASHDIR}/ui目录安装" +UPG_DB_DIR_1_PREFIX="1) 在" +UPG_DB_DIR_1_SUFFIX="/ui目录安装" UPG_DB_DIR_2="2) 在/www/clash目录安装" UPG_DB_TITLE="安装 dashboard 管理面板到本地" UPG_DB_TITLE2="打开管理面板的速度更快且更稳定" @@ -207,13 +218,17 @@ UPG_THANKS_ITEM_DUSTIN_URL="开发者地址:https://github.com/DustinWin" UPG_CORE_GET_LINK_TITLE="正在获取内核文件链接......" UPG_CUSTOM_CORE_CURRENT_TEXT="当前内核为:" UPG_CUSTOM_CORE_NOTE1="不支持Gvisor、Tailscale、Wireguard、NaiveProxy" -UPG_CORE_V1="1) \033[43;30mMihomo\033[0m:\033[32m$meta_v \033[32m(原meta内核)支持全面\033[0m \033[33m占用略高\033[0m" +UPG_CORE_V1_PREFIX="1) \033[43;30mMihomo\033[0m:\033[32m" +UPG_CORE_V1_SUFFIX=" \033[32m(原meta内核)支持全面\033[0m \033[33m占用略高\033[0m" UPG_CORE_V1_DOC="说明文档:\033[36;4mhttps://wiki.metacubex.one\033[0m" -UPG_CORE_V2="2) \033[43;30mSingBoxR\033[0m:\033[32m$singboxr_v \033[32m支持全面\033[0m \033[33m使用reF1nd增强分支\033[0m" +UPG_CORE_V2_PREFIX="2) \033[43;30mSingBoxR\033[0m:\033[32m" +UPG_CORE_V2_SUFFIX=" \033[32m支持全面\033[0m \033[33m使用reF1nd增强分支\033[0m" UPG_CORE_V2_DOC="说明文档:\033[36;4mhttps://sing-boxr.dustinwin.us.kg\033[0m" -UPG_CORE_V3="3) \033[43;30mSingBox\033[0m:\033[32m$singbox_v \033[32m占用较低\033[0m \033[33m不支持providers\033[0m" +UPG_CORE_V3_PREFIX="3) \033[43;30mSingBox\033[0m:\033[32m" +UPG_CORE_V3_SUFFIX=" \033[32m占用较低\033[0m \033[33m不支持providers\033[0m" UPG_CORE_V3_DOC="说明文档:\033[36;4mhttps://sing-box.sagernet.org\033[0m" -UPG_CORE_V4="4) \033[43;30mClash\033[0m:\033[32m$clash_v \033[32m占用低\033[0m \033[33m不安全,已停止维护\033[0m" +UPG_CORE_V4_PREFIX="4) \033[43;30mClash\033[0m:\033[32m" +UPG_CORE_V4_SUFFIX=" \033[32m占用低\033[0m \033[33m不安全,已停止维护\033[0m" UPG_CORE_V4_DOC="说明文档:\033[36;4mhttps://lancellc.gitbook.io\033[0m" UPG_CORE_ASUS_WARN="Meta内核使用的GeoSite.dat数据库在华硕设备存在被系统误删的问题,可能无法使用!" UPG_GEO_FIND_TITLE="正在查找可更新的数据库文件......" @@ -231,7 +246,8 @@ UPG_GEO_ITEM6="6) Singbox-srs数据库常用包(约0.8mb,非必要勿用)" UPG_GEO_ITEM8="8) \033[36m自定义数据库文件\033[0m" UPG_GEO_ITEM9="9) \033[31m清理数据库文件\033[0m" UPG_GEO_CLEAN_PROMPT="确认清理" -UPG_GEO_CLEAN_WARN="这将清理$CRASHDIR目录及/ruleset目录下所有数据库文件!" +UPG_GEO_CLEAN_WARN_PREFIX="这将清理" +UPG_GEO_CLEAN_WARN_SUFFIX="目录及/ruleset目录下所有数据库文件!" UPG_GEO_CLEAN_WARN2="清理后启动服务即可自动下载所需文件" UPG_GEO_CLEANED="所有数据库文件均已清理!" UPG_DB_CONNECTING="正在连接服务器获取安装文件......" @@ -240,7 +256,8 @@ UPG_DB_EXTRACT_FAIL_TEXT="文件解压失败!" UPG_DB_INSTALLED_HINT="检测到已经安装过本地面板" UPG_DB_INSTALL_CANCEL="安装已取消" UPG_DB_DIR_TITLE="请选择面板安装目录:" -UPG_DB_DIR_1_TEXT="1) 在${CRASHDIR}/ui目录安装" +UPG_DB_DIR_1_TEXT_PREFIX="1) 在" +UPG_DB_DIR_1_TEXT_SUFFIX="/ui目录安装" UPG_DB_DIR_2_TEXT="2) 在/www/clash目录安装" UPG_DB_INSTALL_TITLE="安装 dashboard 管理面板到本地" UPG_DB_INSTALL_TITLE2="打开管理面板的速度更快且更稳定" diff --git a/scripts/lang/chs/fw_filter.lang b/scripts/lang/chs/fw_filter.lang index 325699a2..6f315a41 100644 --- a/scripts/lang/chs/fw_filter.lang +++ b/scripts/lang/chs/fw_filter.lang @@ -1,8 +1,12 @@ FWF_TITLE="流量过滤" -FWF_ITEM_1="1) 过滤非常用端口: \033[36m$common_ports\033[0m ———用于过滤P2P流量" -FWF_ITEM_2="2) 过滤局域网设备: \033[36m$mac_return\033[0m ———使用黑/白名单进行过滤" -FWF_ITEM_3="3) 过滤QUIC协议: \033[36m$quic_rj\033[0m ———优化视频性能" -FWF_ITEM_4="4) 过滤CN_IP(4&6)列表:\033[36m$cn_ip_route\033[0m ———优化性能" +FWF_ITEM_1_PREFIX="1) 过滤非常用端口:\t" +FWF_ITEM_1_SUFFIX="—用于过滤P2P流量" +FWF_ITEM_2_PREFIX="2) 过滤局域网设备:\t" +FWF_ITEM_2_SUFFIX="—使用黑/白名单进行过滤" +FWF_ITEM_3_PREFIX="3) 过滤QUIC协议:\t" +FWF_ITEM_3_SUFFIX="—优化视频性能" +FWF_ITEM_4_PREFIX="4) 过滤CN_IP(4&6)列表:" +FWF_ITEM_4_SUFFIX="—优化性能" FWF_ITEM_5="5) 自定义透明路由ipv4网段:适合vlan等复杂网络环境" FWF_ITEM_6="6) 自定义保留地址ipv4网段:需要以保留地址为访问目标的环境" FWF_BACK="0) $COMMON_BACK" @@ -21,7 +25,8 @@ FWF_PASS_WORD="不" FWF_COMMON_NOTE="注意:\n" FWF_MIX_NOTE="MIX模式下,所有fake-ip来源的非常用端口流量不会被过滤" FWF_ALLOWED_PORTS="当前已放行端口:" -FWF_PORT_MENU_1="1) 启用/关闭端口过滤: \t\033[36m$common_ports\033[0m" +FWF_PORT_MENU_1_PREFIX="1) 启用/关闭端口过滤: \t" +FWF_PORT_MENU_1_SUFFIX="" FWF_PORT_MENU_2="2) 添加放行端口" FWF_PORT_MENU_3="3) 移除指定放行端口" FWF_PORT_MENU_4="4) 重置默认放行端口" @@ -76,7 +81,8 @@ FWF_FILTER_BLACK_DESC="仅列表内设备流量不经过内核" FWF_FILTER_WHITE_DESC="仅列表内设备流量经过内核" FWF_FILTER_EXISTED="当前已过滤设备为:" FWF_FILTER_HEADER=" \033[36m设备mac/ip地址\033[0m \033[35m设备名称\033[0m" -FWF_FILTER_SWITCH="1) 切换为\033[33m$fw_filter_lan_over模式\033[0m" +FWF_FILTER_SWITCH_PREFIX="1) 切换为" +FWF_FILTER_SWITCH_SUFFIX="模式" FWF_FILTER_ADD_MAC="2) \033[32m添加指定设备(mac地址)\033[0m" FWF_FILTER_ADD_IP="3) \033[32m添加指定设备(IP地址/网段)\033[0m" FWF_FILTER_REMOVE="4) \033[36m移除指定设备\033[0m" diff --git a/scripts/lang/chs/override.lang b/scripts/lang/chs/override.lang index aa2cfaae..a5a0171e 100644 --- a/scripts/lang/chs/override.lang +++ b/scripts/lang/chs/override.lang @@ -10,7 +10,8 @@ OVR_PROMPT="请输入> " OVR_GROUPS_CHOOSE_TYPE="请选择策略组的类型:" OVR_GROUP_TYPE_CN="手动选择 自动选择 故障转移 负载均衡" OVR_WARN_1="此功能可能会导致严重问题!启用后脚本中大部分功能都将禁用!!!" -OVR_WARN_2="如果你不是非常了解$crashcore的运行机制,切勿开启!" +OVR_WARN_2_PREFIX="如果你不是非常了解" +OVR_WARN_2_SUFFIX="的运行机制,切勿开启!" OVR_WARN_3="继续后如出现任何问题,请务必自行解决,一切提问恕不受理!" OVR_WARN_CONFIRM="1) 我确认遇到问题可以自行解决" OVR_CONFIRM_YES="1) 是" diff --git a/scripts/lang/en/8_tools.lang b/scripts/lang/en/8_tools.lang index 379c8c75..df64d1c0 100644 --- a/scripts/lang/en/8_tools.lang +++ b/scripts/lang/en/8_tools.lang @@ -11,9 +11,11 @@ TOOLS_ENABLE="Enable" TOOLS_CONFIGURED="Configured" TOOLS_SSH_ONLY_OPENWRT="This feature only works on OpenWrt devices and does not depend on services" TOOLS_SSH_UNSUPPORTED_SYSTEM="This feature does not support mirrored systems like Redmi AX6S. Do not try it!" -TOOLS_SSH_PORT_ITEM="1) \033[32mChange\033[0m WAN SSH port: \033[36m$ssh_port\033[0m" +TOOLS_SSH_PORT_ITEM_PREFIX="1) \033[32mChange\033[0m WAN SSH port:" +TOOLS_SSH_PORT_ITEM_SUFFIX="" TOOLS_SSH_PASS_ITEM="2) \033[32mChange\033[0m SSH password (enter twice, then press Enter)" -TOOLS_SSH_TOGGLE_ITEM="3) \033[33m$ssh_ol\033[0m WAN SSH access" +TOOLS_SSH_TOGGLE_ITEM_PREFIX="3) " +TOOLS_SSH_TOGGLE_ITEM_SUFFIX=" WAN SSH access" TOOLS_PROMPT_PORT="Please enter a port number (1000-65535)> " TOOLS_WARN_COMPAT="This page may not be compatible with all Linux devices. Use at your own discretion!" TOOLS_DISK_USAGE="Disk usage / current directory:" @@ -21,10 +23,14 @@ TOOLS_MENU_TEST_ITEM="1) ShellCrash \033[33mTest Menu\033[0m" TOOLS_MENU_GUIDE_ITEM="2) ShellCrash \033[32mGetting Started\033[0m" TOOLS_MENU_LOG_ITEM="3) \033[36mLogs and Push Tools\033[0m" TOOLS_MENU_SSH_ITEM="4) \033[32mConfigure\033[0m WAN SSH access" -TOOLS_MENU_MI_UPDATE_ITEM="5) \033[33m$mi_update\033[0m Xiaomi system auto-update" -TOOLS_MENU_MI_AUTO_SSH_ITEM="6) Xiaomi device SSH hardening —— \033[$mi_mi_autoSSH_type \033[0m" -TOOLS_MENU_MI_TUN_FIX_ITEM="8) Xiaomi device Tun module repair —— \033[$mi_tunfix \033[0m" -TOOLS_MI_UPDATE_MSG="Xiaomi router auto-update has been \033[33m$mi_update\033[0m. If it does not take effect, sync the setting in the official app!" +TOOLS_MENU_MI_UPDATE_ITEM_PREFIX="5) " +TOOLS_MENU_MI_UPDATE_ITEM_SUFFIX=" Xiaomi system auto-update" +TOOLS_MENU_MI_AUTO_SSH_ITEM_PREFIX="6) Xiaomi device SSH hardening —— " +TOOLS_MENU_MI_AUTO_SSH_ITEM_SUFFIX="" +TOOLS_MENU_MI_TUN_FIX_ITEM_PREFIX="8) Xiaomi device Tun module repair —— " +TOOLS_MENU_MI_TUN_FIX_ITEM_SUFFIX="" +TOOLS_MI_UPDATE_MSG_PREFIX="Xiaomi router auto-update has been " +TOOLS_MI_UPDATE_MSG_SUFFIX=". If it does not take effect, sync the setting in the official app!" TOOLS_UNSUPPORTED_DEVICE="Unsupported device!" TOOLS_FETCHING_SCRIPT="Fetching online script..." TOOLS_DOWNLOAD_FAIL="File download failed!" @@ -46,16 +52,25 @@ TOOLS_AUTO_SSH_WARN2="If you have issues, please report in the group:" TOOLS_AUTO_SSH_PWD_HINT1="Please enter the SSH password to restore (current password will not be affected)" TOOLS_AUTO_SSH_PWD_HINT2="(Press Enter to skip)" TOOLS_AUTO_SSH_INPUT="Please enter> " -TOOLS_LOG_TG="1) Telegram push\t——\033[$stat_TG\033[0m" -TOOLS_LOG_DEER="2) PushDeer push\t——\033[$stat_Deer\033[0m" -TOOLS_LOG_BARK="3) Bark push-IOS\t——\033[$stat_bark\033[0m" -TOOLS_LOG_PO="4) Passover push\t——\033[$stat_Po\033[0m" -TOOLS_LOG_PP="5) PushPlus push\t——\033[$stat_PP\033[0m" -TOOLS_LOG_SYNO="6) SynoChat push\t——\033[$stat_SynoChat\033[0m" -TOOLS_LOG_GOTIFY="7) Gotify push\t ——\033[$stat_Gotify\033[0m" +TOOLS_LOG_TG_PREFIX="1) Telegram push\t——" +TOOLS_LOG_TG_SUFFIX="" +TOOLS_LOG_DEER_PREFIX="2) PushDeer push\t——" +TOOLS_LOG_DEER_SUFFIX="" +TOOLS_LOG_BARK_PREFIX="3) Bark push-IOS\t——" +TOOLS_LOG_BARK_SUFFIX="" +TOOLS_LOG_PO_PREFIX="4) Passover push\t——" +TOOLS_LOG_PO_SUFFIX="" +TOOLS_LOG_PP_PREFIX="5) PushPlus push\t——" +TOOLS_LOG_PP_SUFFIX="" +TOOLS_LOG_SYNO_PREFIX="6) SynoChat push\t——" +TOOLS_LOG_SYNO_SUFFIX="" +TOOLS_LOG_GOTIFY_PREFIX="7) Gotify push\t ——" +TOOLS_LOG_GOTIFY_SUFFIX="" TOOLS_LOG_VIEW="a) View \033[36mruntime logs\033[0m" -TOOLS_LOG_TASK="b) Push task logs\t——\033[$stat_task\033[0m" -TOOLS_LOG_DEVICE="c) Set device name\t——\033[$device_s\033[0m" +TOOLS_LOG_TASK_PREFIX="b) Push task logs\t——" +TOOLS_LOG_TASK_SUFFIX="" +TOOLS_LOG_DEVICE_PREFIX="c) Set device name\t——" +TOOLS_LOG_DEVICE_SUFFIX="" TOOLS_LOG_CLEAR="d) Clear log files" TOOLS_CONFIRM_CLOSE_TG="Are you sure you want to disable TG log push?" TOOLS_CONFIRM_CLOSE_DEER="Are you sure you want to disable PushDeer log push?" @@ -120,17 +135,22 @@ TOOLS_PROXY_NOTE="Note: depends on curl (wget is not supported), and the test re TOOLS_PROXY_OK="Connection successful! Response time: " TOOLS_PROXY_TIMEOUT="Connection timed out! Please retry or check the node configuration!" TOOLS_DEBUG_WARN1="Note: Debug mode will stop the original kernel service" -TOOLS_DEBUG_WARN2="Background log path: \033[32m$TMPDIR/debug.log\033[0m" +TOOLS_DEBUG_WARN2_PREFIX="Background log path: " +TOOLS_DEBUG_WARN2_SUFFIX="" TOOLS_DEBUG_WARN3="For long-running background monitoring, error is recommended as the log level to avoid oversized files!" TOOLS_DEBUG_WARN4="You can also use: \033[33mcrash -s debug 'warning'\033[0m to select another log level" -TOOLS_DEBUG_ITEM_1="1) Only test the availability of the \033[32m$config_tmp\033[0m config file" -TOOLS_DEBUG_ITEM_2="2) Run the \033[32m$config_tmp\033[0m config file in foreground without firewall hijacking (\033[33muse Ctrl+C to stop manually\033[0m)" +TOOLS_DEBUG_ITEM_1_PREFIX="1) Only test the availability of the " +TOOLS_DEBUG_ITEM_1_SUFFIX=" config file" +TOOLS_DEBUG_ITEM_2_PREFIX="2) Run the " +TOOLS_DEBUG_ITEM_2_SUFFIX=" config file in foreground without firewall hijacking (use Ctrl+C to stop manually)" TOOLS_DEBUG_ITEM_3="3) Run the full startup flow in background with firewall hijacking, log level: \033[31merror\033[0m" TOOLS_DEBUG_ITEM_4="4) Run the full startup flow in background with firewall hijacking, log level: \033[32minfo\033[0m" TOOLS_DEBUG_ITEM_5="5) Run the full startup flow in background with firewall hijacking, log level: \033[33mdebug\033[0m" -TOOLS_DEBUG_ITEM_6="6) Run the full startup flow in background with firewall hijacking and print error logs to flash: \033[32m$CRASHDIR/debug.log\033[0m" +TOOLS_DEBUG_ITEM_6_PREFIX="6) Run the full startup flow in background with firewall hijacking and print error logs to flash: " +TOOLS_DEBUG_ITEM_6_SUFFIX="" TOOLS_DEBUG_ITEM_8="8) Run the full startup flow in background, print execution errors and inspect context, then close the process" -TOOLS_DEBUG_ITEM_9="9) Merge the json files under \033[32m$config_tmp\033[0m into $TMPDIR/debug.json" +TOOLS_DEBUG_ITEM_9_PREFIX="9) Merge the json files under " +TOOLS_DEBUG_ITEM_9_SUFFIX=" into " TOOLS_FLASH_WARN="Frequent flash writes will shorten flash lifespan. Unless you are dealing with a bug that would otherwise crash or reboot the device, do not use this feature!" TOOLS_FLASH_CONFIRM="Confirm enabling this feature?" TOOLS_MERGE_OK="Merged successfully!" diff --git a/scripts/lang/en/9_upgrade.lang b/scripts/lang/en/9_upgrade.lang index 595581ba..33bcda2e 100644 --- a/scripts/lang/en/9_upgrade.lang +++ b/scripts/lang/en/9_upgrade.lang @@ -68,8 +68,10 @@ UPG_CORETYPE_CONFIRM_TEXT="Please confirm custom core type:" UPG_CORE_SWITCH_KEEP_TEXT="Keep related database files?" UPG_KEEP_TEXT="Keep" UPG_NOT_KEEP_TEXT="Do not keep" -UPG_GETTING_CORE_TEXT="Fetching $crashcore core files online..." -UPG_CORE_DOWNLOAD_OK_TEXT="$crashcore core downloaded successfully!" +UPG_GETTING_CORE_TEXT_PREFIX="Fetching " +UPG_GETTING_CORE_TEXT_SUFFIX=" core files online..." +UPG_CORE_DOWNLOAD_OK_TEXT_PREFIX="" +UPG_CORE_DOWNLOAD_OK_TEXT_SUFFIX=" core downloaded successfully!" UPG_CORE_DOWNLOAD_FAIL_TEXT="Core file download failed!" UPG_CORE_DOWNLOAD_VERIFY_FAIL_TEXT="Core file downloaded, but verification failed" UPG_CORE_DOWNLOAD_VERIFY_HINT_TEXT="Please try selecting a CPU version manually" @@ -100,18 +102,25 @@ UPG_CORE_MENU_CURRENT="Current core: " UPG_CORE_MENU_SYS="Current CPU architecture: " UPG_CORE_MENU_LOCAL_HINT="If uploading locally, place .upx, .gz, or .tar.gz files in /tmp and rerun the crash command" UPG_CORE_MENU_SELECT="Please choose the core version to use:" -UPG_CORE_MENU_1="1) \033[43;30mMihomo\033[0m: \033[32m$meta_v \033[32m(full meta core) highly compatible\033[0m \033[33mmore resource usage\033[0m" -UPG_CORE_MENU_2="2) \033[43;30mSingBoxR\033[0m: \033[32m$singboxr_v \033[32mfully featured\033[0m \033[33mreF1nd enhanced branch\033[0m" -UPG_CORE_MENU_3="3) \033[43;30mSingBox\033[0m: \033[32m$singbox_v \033[32mlower resource usage\033[0m \033[33mproviders are not supported\033[0m" -UPG_CORE_MENU_4="4) \033[43;30mClash\033[0m: \033[32m$clash_v \033[32mlow resource usage\033[0m \033[33munsafe, maintenance stopped\033[0m" -UPG_CORE_MENU_5="5) Switch branch and compression method: \033[32m$zip_type\033[0m" -UPG_CORE_MENU_6="6) \033[36mUse custom core\033[0m $custcore" +UPG_CORE_MENU_1_PREFIX="1) \033[43;30mMihomo\033[0m: \033[32m" +UPG_CORE_MENU_1_SUFFIX=" \033[32m(full meta core) highly compatible\033[0m \033[33mmore resource usage\033[0m" +UPG_CORE_MENU_2_PREFIX="2) \033[43;30mSingBoxR\033[0m: \033[32m" +UPG_CORE_MENU_2_SUFFIX=" \033[32mfully featured\033[0m \033[33mreF1nd enhanced branch\033[0m" +UPG_CORE_MENU_3_PREFIX="3) \033[43;30mSingBox\033[0m: \033[32m" +UPG_CORE_MENU_3_SUFFIX=" \033[32mlower resource usage\033[0m \033[33mproviders are not supported\033[0m" +UPG_CORE_MENU_4_PREFIX="4) \033[43;30mClash\033[0m: \033[32m" +UPG_CORE_MENU_4_SUFFIX=" \033[32mlow resource usage\033[0m \033[33munsafe, maintenance stopped\033[0m" +UPG_CORE_MENU_5_PREFIX="5) Switch branch and compression method: \033[32m" +UPG_CORE_MENU_5_SUFFIX="\033[0m" +UPG_CORE_MENU_6_PREFIX="6) \033[36mUse custom core\033[0m " +UPG_CORE_MENU_6_SUFFIX="" UPG_CORE_MENU_7="7) \033[32mUpdate current core\033[0m" UPG_CORE_MENU_9="9) Manually specify CPU architecture" UPG_GEO_GETTING="Fetching database files from the server..." UPG_GEO_FAIL="Download failed!" UPG_GEO_EXTRACT_FAIL="Extraction failed!" -UPG_GEO_OK="$geotype database file downloaded successfully!" +UPG_GEO_OK_PREFIX="" +UPG_GEO_OK_SUFFIX=" database file downloaded successfully!" UPG_GEO_LINKING="Fetching database files..." UPG_GEO_FINDING="Searching for updatable database files..." UPG_GEO_SELECT="Please choose the database file to update:" @@ -126,7 +135,8 @@ UPG_GEO_LOCAL_ONLY2="(SingBox-srs only)" UPG_GEO_LOCAL_ONLY3="(Mihomo-mrs only)" UPG_GEO_LOCAL_ONLY4="(Clash-GeoIP only)" UPG_GEO_CUSTOM_LINK="Custom database link" -UPG_GEO_CLEAN_HINT1="This will clean all database files under $CRASHDIR and /ruleset!" +UPG_GEO_CLEAN_HINT1_PREFIX="This will clean all database files under " +UPG_GEO_CLEAN_HINT1_SUFFIX=" and /ruleset!" UPG_GEO_CLEAN_HINT2="After cleaning, starting the service will automatically download the required files" UPG_GEO_CLEAN_CONFIRM="Confirm cleanup" UPG_GEO_CLEAN_OK="All database files have been cleaned!" @@ -139,7 +149,8 @@ UPG_DB_INSTALLED="A local panel is already installed" UPG_DB_UPGRADE="Upgrade / overwrite install" UPG_DB_CANCEL="Installation cancelled" UPG_DB_DIR_SELECT="Please choose the panel install directory:" -UPG_DB_DIR_1="1) Install in ${CRASHDIR}/ui" +UPG_DB_DIR_1_PREFIX="1) Install in " +UPG_DB_DIR_1_SUFFIX="/ui" UPG_DB_DIR_2="2) Install in /www/clash" UPG_DB_TITLE="Install the dashboard management panel locally" UPG_DB_TITLE2="The management panel opens faster and is more stable" @@ -207,13 +218,17 @@ UPG_THANKS_ITEM_DUSTIN_URL="Developer: https://github.com/DustinWin" UPG_CORE_GET_LINK_TITLE="Fetching core file links..." UPG_CUSTOM_CORE_CURRENT_TEXT="Current core: " UPG_CUSTOM_CORE_NOTE1="Gvisor, Tailscale, Wireguard, and NaiveProxy are not supported" -UPG_CORE_V1="1) \033[43;30mMihomo\033[0m: \033[32m$meta_v \033[32m(full meta core) highly compatible\033[0m \033[33mmore resource usage\033[0m" +UPG_CORE_V1_PREFIX="1) \033[43;30mMihomo\033[0m: \033[32m" +UPG_CORE_V1_SUFFIX=" \033[32m(full meta core) highly compatible\033[0m \033[33mmore resource usage\033[0m" UPG_CORE_V1_DOC="Docs: \033[36;4mhttps://wiki.metacubex.one\033[0m" -UPG_CORE_V2="2) \033[43;30mSingBoxR\033[0m: \033[32m$singboxr_v \033[32mfully featured\033[0m \033[33mreF1nd enhanced branch\033[0m" +UPG_CORE_V2_PREFIX="2) \033[43;30mSingBoxR\033[0m: \033[32m" +UPG_CORE_V2_SUFFIX=" \033[32mfully featured\033[0m \033[33mreF1nd enhanced branch\033[0m" UPG_CORE_V2_DOC="Docs: \033[36;4mhttps://sing-boxr.dustinwin.us.kg\033[0m" -UPG_CORE_V3="3) \033[43;30mSingBox\033[0m: \033[32m$singbox_v \033[32mlower resource usage\033[0m \033[33mproviders are not supported\033[0m" +UPG_CORE_V3_PREFIX="3) \033[43;30mSingBox\033[0m: \033[32m" +UPG_CORE_V3_SUFFIX=" \033[32mlower resource usage\033[0m \033[33mproviders are not supported\033[0m" UPG_CORE_V3_DOC="Docs: \033[36;4mhttps://sing-box.sagernet.org\033[0m" -UPG_CORE_V4="4) \033[43;30mClash\033[0m: \033[32m$clash_v \033[32mlow resource usage\033[0m \033[33munsafe, maintenance stopped\033[0m" +UPG_CORE_V4_PREFIX="4) \033[43;30mClash\033[0m: \033[32m" +UPG_CORE_V4_SUFFIX=" \033[32mlow resource usage\033[0m \033[33munsafe, maintenance stopped\033[0m" UPG_CORE_V4_DOC="Docs: \033[36;4mhttps://lancellc.gitbook.io\033[0m" UPG_CORE_ASUS_WARN="The GeoSite.dat database used by Meta core may be deleted by the system on Asus devices, so it may not work!" UPG_GEO_FIND_TITLE="Searching for updatable database files..." @@ -231,7 +246,8 @@ UPG_GEO_ITEM6="6) SingBox-srs common package (about 0.8mb, use only if needed)" UPG_GEO_ITEM8="8) \033[36mCustom database file\033[0m" UPG_GEO_ITEM9="9) \033[31mClean database files\033[0m" UPG_GEO_CLEAN_PROMPT="Confirm cleanup" -UPG_GEO_CLEAN_WARN="This will clean all database files under $CRASHDIR and /ruleset!" +UPG_GEO_CLEAN_WARN_PREFIX="This will clean all database files under " +UPG_GEO_CLEAN_WARN_SUFFIX=" and /ruleset!" UPG_GEO_CLEAN_WARN2="After cleanup, start the service to download the required files automatically" UPG_GEO_CLEANED="All database files have been cleaned!" UPG_DB_CONNECTING="Connecting to the server to fetch installation files..." @@ -240,7 +256,8 @@ UPG_DB_EXTRACT_FAIL_TEXT="Extraction failed!" UPG_DB_INSTALLED_HINT="A local panel is already installed" UPG_DB_INSTALL_CANCEL="Installation cancelled" UPG_DB_DIR_TITLE="Please choose the panel install directory:" -UPG_DB_DIR_1_TEXT="1) Install in ${CRASHDIR}/ui" +UPG_DB_DIR_1_TEXT_PREFIX="1) Install in " +UPG_DB_DIR_1_TEXT_SUFFIX="/ui" UPG_DB_DIR_2_TEXT="2) Install in /www/clash" UPG_DB_INSTALL_TITLE="Install the dashboard management panel locally" UPG_DB_INSTALL_TITLE2="The management panel opens faster and is more stable" diff --git a/scripts/lang/en/fw_filter.lang b/scripts/lang/en/fw_filter.lang index 090c1b5e..119afb1d 100644 --- a/scripts/lang/en/fw_filter.lang +++ b/scripts/lang/en/fw_filter.lang @@ -1,8 +1,12 @@ FWF_TITLE="Traffic Filter" -FWF_ITEM_1="1) Filter non-common ports: \t\033[36m$common_ports\033[0m\t--- used to filter P2P traffic" -FWF_ITEM_2="2) Filter LAN devices: \t\033[36m$mac_return\033[0m\t--- use blacklist/whitelist filtering" -FWF_ITEM_3="3) Filter QUIC protocol: \t\033[36m$quic_rj\033[0m\t--- improve video performance" -FWF_ITEM_4="4) Filter CN_IP (4&6) list: \033[36m$cn_ip_route\033[0m\t--- improve performance" +FWF_ITEM_1_PREFIX="1) Filter Common ports: " +FWF_ITEM_1_SUFFIX="--- filter P2P traffic" +FWF_ITEM_2_PREFIX="2) Filter LAN devices: " +FWF_ITEM_2_SUFFIX="--- use black/white list" +FWF_ITEM_3_PREFIX="3) Filter QUIC protocol: " +FWF_ITEM_3_SUFFIX="--- improve video" +FWF_ITEM_4_PREFIX="4) Filter CN_IP list: " +FWF_ITEM_4_SUFFIX="--- improve performance" FWF_ITEM_5="5) Custom transparent routing IPv4 subnet: suitable for vlan and other complex networks" FWF_ITEM_6="6) Custom reserved-address IPv4 subnet: for environments that need reserved addresses as targets" FWF_BACK="0) $COMMON_BACK" @@ -21,7 +25,8 @@ FWF_PASS_WORD="not" FWF_COMMON_NOTE="Note:\n" FWF_MIX_NOTE="In MIX mode, non-common port traffic from fake-ip sources will not be filtered" FWF_ALLOWED_PORTS="Currently allowed ports: " -FWF_PORT_MENU_1="1) Enable/disable port filtering: \t\033[36m$common_ports\033[0m" +FWF_PORT_MENU_1_PREFIX="1) Enable/disable port filtering: \t" +FWF_PORT_MENU_1_SUFFIX="" FWF_PORT_MENU_2="2) Add allowed port" FWF_PORT_MENU_3="3) Remove specified allowed port" FWF_PORT_MENU_4="4) Reset default allowed ports" @@ -76,7 +81,8 @@ FWF_FILTER_BLACK_DESC="Only the devices in the list bypass the core" FWF_FILTER_WHITE_DESC="Only the devices in the list pass through the core" FWF_FILTER_EXISTED="Currently filtered devices:" FWF_FILTER_HEADER=" \033[36mDevice MAC/IP\033[0m \033[35mDevice name\033[0m" -FWF_FILTER_SWITCH="1) Switch to \033[33m$fw_filter_lan_over mode\033[0m" +FWF_FILTER_SWITCH_PREFIX="1) Switch to " +FWF_FILTER_SWITCH_SUFFIX=" mode" FWF_FILTER_ADD_MAC="2) \033[32mAdd specified device (MAC)\033[0m" FWF_FILTER_ADD_IP="3) \033[32mAdd specified device (IP/subnet)\033[0m" FWF_FILTER_REMOVE="4) \033[36mRemove specified device\033[0m" diff --git a/scripts/lang/en/override.lang b/scripts/lang/en/override.lang index 556916a2..60ea88a2 100644 --- a/scripts/lang/en/override.lang +++ b/scripts/lang/en/override.lang @@ -10,7 +10,8 @@ OVR_PROMPT="Please enter> " OVR_GROUPS_CHOOSE_TYPE="Please choose the proxy group type:" OVR_GROUP_TYPE_CN="Manual Select Auto Select Failover Load Balance" OVR_WARN_1="This feature may cause serious problems! Most script functions will be disabled after enabling it!!!" -OVR_WARN_2="If you are not very familiar with how $crashcore works, do not enable it!" +OVR_WARN_2_PREFIX="If you are not very familiar with how " +OVR_WARN_2_SUFFIX=" works, do not enable it!" OVR_WARN_3="If any problem occurs after continuing, you must solve it yourself. No questions will be accepted!" OVR_WARN_CONFIRM="1) I confirm I can solve any problems myself" OVR_CONFIRM_YES="1) Yes" diff --git a/scripts/menus/2_settings.sh b/scripts/menus/2_settings.sh index c31a9b21..33dbd3dc 100644 --- a/scripts/menus/2_settings.sh +++ b/scripts/menus/2_settings.sh @@ -265,6 +265,7 @@ set_redir_mod() { [ -z "$firewall_area" ] && firewall_area=1 [ "$firewall_area" = 4 ] && redir_mod="$MENU_PURE_MOD" [ -z "$redir_mod" ] && redir_mod='Redir' + [ -z "$vm_redir" ] && vm_redir='OFF' firewall_area_dsc=$(echo "$SET_FW_AREA_DESC($bypass_host)" | cut -d'|' -f$firewall_area) comp_box "\033[33m$SET_REDIR_RESTART_HINT\033[0m" \ "$SET_REDIR_CURRENT\033[47;30m$redir_mod$MENU_MOD\033[0m; $SET_CORE_CURRENT\033[47;30m$crashcore\033[0m" @@ -550,7 +551,6 @@ set_adv_config() { set_firewall_area() { while true; do - [ -z "$vm_redir" ] && vm_redir='OFF' comp_box "\033[33m$FW_AREA_NOTE_1\033[0m" \ "\033[33m$FW_AREA_NOTE_2\033[0m" \ "" \ diff --git a/scripts/menus/8_tools.sh b/scripts/menus/8_tools.sh index aa00011b..1442dc45 100644 --- a/scripts/menus/8_tools.sh +++ b/scripts/menus/8_tools.sh @@ -19,9 +19,9 @@ ssh_tools() { [ -z "$ssh_port" ] && ssh_port=10022 comp_box "\033[33m$TOOLS_SSH_ONLY_OPENWRT\033[0m" \ "\033[31m$TOOLS_SSH_UNSUPPORTED_SYSTEM\033[0m" - btm_box "$TOOLS_SSH_PORT_ITEM" \ + btm_box "${TOOLS_SSH_PORT_ITEM_PREFIX}\033[36m$ssh_port\033[0m${TOOLS_SSH_PORT_ITEM_SUFFIX}" \ "$TOOLS_SSH_PASS_ITEM" \ - "$TOOLS_SSH_TOGGLE_ITEM" \ + "${TOOLS_SSH_TOGGLE_ITEM_PREFIX}\033[33m$ssh_ol\033[0m${TOOLS_SSH_TOGGLE_ITEM_SUFFIX}" \ "" \ "0) $COMMON_BACK \033[0m" read -r -p "$COMMON_INPUT> " num @@ -88,9 +88,9 @@ tools() { content_line "$TOOLS_MENU_GUIDE_ITEM" content_line "$TOOLS_MENU_LOG_ITEM" [ -f /etc/firewall.user ] && content_line "$TOOLS_MENU_SSH_ITEM" - [ -x /usr/sbin/otapredownload ] && content_line "$TOOLS_MENU_MI_UPDATE_ITEM" - [ "$systype" = "mi_snapshot" ] && content_line "$TOOLS_MENU_MI_AUTO_SSH_ITEM" - [ "$systype" = "mi_snapshot" ] && content_line "$TOOLS_MENU_MI_TUN_FIX_ITEM" + [ -x /usr/sbin/otapredownload ] && content_line "${TOOLS_MENU_MI_UPDATE_ITEM_PREFIX}\033[33m$mi_update\033[0m${TOOLS_MENU_MI_UPDATE_ITEM_SUFFIX}" + [ "$systype" = "mi_snapshot" ] && content_line "${TOOLS_MENU_MI_AUTO_SSH_ITEM_PREFIX}\033[$mi_mi_autoSSH_type \033[0m${TOOLS_MENU_MI_AUTO_SSH_ITEM_SUFFIX}" + [ "$systype" = "mi_snapshot" ] && content_line "${TOOLS_MENU_MI_TUN_FIX_ITEM_PREFIX}\033[$mi_tunfix \033[0m${TOOLS_MENU_MI_TUN_FIX_ITEM_SUFFIX}" btm_box "" \ "0) $COMMON_BACK" read -r -p "$COMMON_INPUT> " num @@ -123,7 +123,8 @@ tools() { sed -i "/^\s*#.*otapredownload/ s/^\s*#//" /etc/crontabs/root || echo "15 3,4,5 * * * /usr/sbin/otapredownload >/dev/null 2>&1" >>/etc/crontabs/root fi - msg_alert "\033[32m$TOOLS_MI_UPDATE_MSG" + [ "$mi_update" = "$TOOLS_DISABLE" ] && mi_update=$TOOLS_ENABLE || mi_update=$TOOLS_DISABLE + msg_alert "\033[32m${TOOLS_MI_UPDATE_MSG_PREFIX}\033[33m$mi_update\033[0m${TOOLS_MI_UPDATE_MSG_SUFFIX}\033[0m" fi ;; 6) @@ -227,17 +228,17 @@ log_pusher() { [ -n "$push_Gotify" ] && stat_Gotify=32mON || stat_Gotify=33mOFF [ "$task_push" = 1 ] && stat_task=32mON || stat_task=33mOFF [ -n "$device_name" ] && device_s=32m$device_name || device_s=33m$COMMON_UNSET - comp_box "$TOOLS_LOG_TG" \ - "$TOOLS_LOG_DEER" \ - "$TOOLS_LOG_BARK" \ - "$TOOLS_LOG_PO" \ - "$TOOLS_LOG_PP" \ - "$TOOLS_LOG_SYNO" \ - "$TOOLS_LOG_GOTIFY" \ + comp_box "${TOOLS_LOG_TG_PREFIX}\033[$stat_TG\033[0m${TOOLS_LOG_TG_SUFFIX}" \ + "${TOOLS_LOG_DEER_PREFIX}\033[$stat_Deer\033[0m${TOOLS_LOG_DEER_SUFFIX}" \ + "${TOOLS_LOG_BARK_PREFIX}\033[$stat_bark\033[0m${TOOLS_LOG_BARK_SUFFIX}" \ + "${TOOLS_LOG_PO_PREFIX}\033[$stat_Po\033[0m${TOOLS_LOG_PO_SUFFIX}" \ + "${TOOLS_LOG_PP_PREFIX}\033[$stat_PP\033[0m${TOOLS_LOG_PP_SUFFIX}" \ + "${TOOLS_LOG_SYNO_PREFIX}\033[$stat_SynoChat\033[0m${TOOLS_LOG_SYNO_SUFFIX}" \ + "${TOOLS_LOG_GOTIFY_PREFIX}\033[$stat_Gotify\033[0m${TOOLS_LOG_GOTIFY_SUFFIX}" \ "" \ "$TOOLS_LOG_VIEW" \ - "$TOOLS_LOG_TASK" \ - "$TOOLS_LOG_DEVICE" \ + "${TOOLS_LOG_TASK_PREFIX}\033[$stat_task\033[0m${TOOLS_LOG_TASK_SUFFIX}" \ + "${TOOLS_LOG_DEVICE_PREFIX}\033[$device_s\033[0m${TOOLS_LOG_DEVICE_SUFFIX}" \ "$TOOLS_LOG_CLEAR" \ "" \ "0) $COMMON_BACK" @@ -685,18 +686,18 @@ testcommand() { debug() { echo "$crashcore" | grep -q 'singbox' && config_tmp="$TMPDIR"/jsons || config_tmp="$TMPDIR"/config.yaml comp_box "\033[36m$TOOLS_DEBUG_WARN1\033[0m" \ - "$TOOLS_DEBUG_WARN2" \ + "${TOOLS_DEBUG_WARN2_PREFIX}\033[32m$TMPDIR/debug.log\033[0m${TOOLS_DEBUG_WARN2_SUFFIX}" \ "$TOOLS_DEBUG_WARN3" \ "$TOOLS_DEBUG_WARN4" - content_line "$TOOLS_DEBUG_ITEM_1" - content_line "$TOOLS_DEBUG_ITEM_2" + content_line "${TOOLS_DEBUG_ITEM_1_PREFIX}\033[32m$config_tmp\033[0m${TOOLS_DEBUG_ITEM_1_SUFFIX}" + content_line "${TOOLS_DEBUG_ITEM_2_PREFIX}\033[32m$config_tmp\033[0m${TOOLS_DEBUG_ITEM_2_SUFFIX}" content_line "$TOOLS_DEBUG_ITEM_3" content_line "$TOOLS_DEBUG_ITEM_4" content_line "$TOOLS_DEBUG_ITEM_5" - content_line "$TOOLS_DEBUG_ITEM_6" + content_line "${TOOLS_DEBUG_ITEM_6_PREFIX}\033[32m$CRASHDIR/debug.log\033[0m${TOOLS_DEBUG_ITEM_6_SUFFIX}" content_line "" content_line "$TOOLS_DEBUG_ITEM_8" - [ -s "$TMPDIR"/jsons/inbounds.json ] && content_line "$TOOLS_DEBUG_ITEM_9" + [ -s "$TMPDIR"/jsons/inbounds.json ] && content_line "${TOOLS_DEBUG_ITEM_9_PREFIX}\033[32m$config_tmp\033[0m${TOOLS_DEBUG_ITEM_9_SUFFIX}\033[32m$TMPDIR/debug.json\033[0m" btm_box "" \ "0) $COMMON_BACK" read -r -p "$COMMON_INPUT> " num @@ -765,4 +766,3 @@ debug() { ;; esac } - diff --git a/scripts/menus/9_upgrade.sh b/scripts/menus/9_upgrade.sh index eaa8cdab..33002a82 100644 --- a/scripts/menus/9_upgrade.sh +++ b/scripts/menus/9_upgrade.sh @@ -300,11 +300,11 @@ getcore() { # 获取在线内核文件 line_break separator_line "=" - content_line "$UPG_GETTING_CORE_TEXT" + content_line "${UPG_GETTING_CORE_TEXT_PREFIX}${crashcore}${UPG_GETTING_CORE_TEXT_SUFFIX}" core_webget case "$?" in 0) - content_line "\033[32m$UPG_CORE_DOWNLOAD_OK_TEXT\033[0m" + content_line "\033[32m${UPG_CORE_DOWNLOAD_OK_TEXT_PREFIX}${crashcore}${UPG_CORE_DOWNLOAD_OK_TEXT_SUFFIX}\033[0m" separator_line "=" sleep 1 switch_core @@ -403,10 +403,10 @@ setcustcore() { separator_line "=" content_line "$UPG_CUSTOM_CORE_SELECT" separator_line "-" - btm_box "$UPG_CORE_MENU_1" \ - "$UPG_CORE_MENU_2" \ - "$UPG_CORE_MENU_3" \ - "$UPG_CORE_MENU_4" \ + btm_box "${UPG_CORE_MENU_1_PREFIX}${meta_v}${UPG_CORE_MENU_1_SUFFIX}" \ + "${UPG_CORE_MENU_2_PREFIX}${singboxr_v}${UPG_CORE_MENU_2_SUFFIX}" \ + "${UPG_CORE_MENU_3_PREFIX}${singbox_v}${UPG_CORE_MENU_3_SUFFIX}" \ + "${UPG_CORE_MENU_4_PREFIX}${clash_v}${UPG_CORE_MENU_4_SUFFIX}" \ "$UPG_CORE_MENU_9" \ "" \ "0) $COMMON_BACK" @@ -506,22 +506,22 @@ setcore() { "" \ "\033[33m$UPG_CORE_MENU_SELECT\033[0m" - content_line "$UPG_CORE_V1" + content_line "${UPG_CORE_V1_PREFIX}${meta_v}${UPG_CORE_V1_SUFFIX}" sub_content_line "$UPG_CORE_V1_DOC" - content_line "$UPG_CORE_V2" + content_line "${UPG_CORE_V2_PREFIX}${singboxr_v}${UPG_CORE_V2_SUFFIX}" sub_content_line "$UPG_CORE_V2_DOC" [ "$zip_type" = 'upx' ] && { - content_line "$UPG_CORE_V3" + content_line "${UPG_CORE_V3_PREFIX}${singbox_v}${UPG_CORE_V3_SUFFIX}" sub_content_line "$UPG_CORE_V3_DOC" } [ "$zip_type" = 'upx' ] && { - content_line "$UPG_CORE_V4" + content_line "${UPG_CORE_V4_PREFIX}${clash_v}${UPG_CORE_V4_SUFFIX}" sub_content_line "$UPG_CORE_V4_DOC" } - btm_box "$UPG_CORE_MENU_5" \ - "$UPG_CORE_MENU_6" \ + btm_box "${UPG_CORE_MENU_5_PREFIX}${zip_type}${UPG_CORE_MENU_5_SUFFIX}" \ + "${UPG_CORE_MENU_6_PREFIX}${custcore}${UPG_CORE_MENU_6_SUFFIX}" \ "$UPG_CORE_MENU_7" \ "$UPG_CORE_MENU_9" \ "" \ @@ -609,7 +609,7 @@ getgeo() { else mv -f "$TMPDIR"/"${geoname}" "$BINDIR"/"${geofile}""${geoname}" fi - content_line "\033[32m$UPG_GEO_OK\033[0m" + content_line "\033[32m${UPG_GEO_OK_PREFIX}${geotype}${UPG_GEO_OK_SUFFIX}\033[0m" geo_v="$(echo "$geotype" | awk -F "." '{print $1}')_v" setconfig "$geo_v" "$GeoIP_v" fi @@ -630,7 +630,7 @@ getcustgeo() { [ ! -d "$BINDIR"/ruleset ] && mkdir -p "$BINDIR"/ruleset } mv -f "$TMPDIR"/"${geoname}" "$BINDIR"/"${geofile}""${geoname}" - content_line "\033[32m$UPG_GEO_OK\033[0m" + content_line "\033[32m${UPG_GEO_OK_PREFIX}${geotype}${UPG_GEO_OK_SUFFIX}\033[0m" separator_line "=" fi sleep 1 @@ -818,7 +818,7 @@ setgeo() { ;; 9) while true; do - comp_box "\033[33m$UPG_GEO_CLEAN_HINT1\033[0m" \ + comp_box "\033[33m${UPG_GEO_CLEAN_HINT1_PREFIX}${CRASHDIR}${UPG_GEO_CLEAN_HINT1_SUFFIX}\033[0m" \ "$UPG_GEO_CLEAN_HINT2" btm_box "$UPG_GEO_CLEAN_CONFIRM" \ "0) $COMMON_BACK" @@ -912,7 +912,7 @@ dbdir() { fi elif [ -w /www ] && [ -n "$(pidof nginx)" ]; then comp_box "$UPG_DB_DIR_SELECT" - btm_box "$UPG_DB_DIR_1" \ + btm_box "${UPG_DB_DIR_1_PREFIX}${CRASHDIR}${UPG_DB_DIR_1_SUFFIX}" \ "$UPG_DB_DIR_2" \ "" \ "0) $COMMON_BACK" diff --git a/scripts/menus/fw_filter.sh b/scripts/menus/fw_filter.sh index 6ff420ef..afadc578 100644 --- a/scripts/menus/fw_filter.sh +++ b/scripts/menus/fw_filter.sh @@ -12,11 +12,11 @@ set_fw_filter() { [ -z "$quic_rj" ] && quic_rj=OFF [ -z "$cn_ip_route" ] && cn_ip_route=OFF touch "$CRASHDIR"/configs/mac "$CRASHDIR"/configs/ip_filter - [ -z "$(cat "$CRASHDIR"/configs/mac "$CRASHDIR"/configs/ip_filter 2>/dev/null)" ] && mac_return=OFF || mac_return=ON - comp_box "$FWF_ITEM_1" \ - "$FWF_ITEM_2" \ - "$FWF_ITEM_3" \ - "$FWF_ITEM_4" \ + [ -z "$(cat "$CRASHDIR"/configs/mac "$CRASHDIR"/configs/ip_filter 2>/dev/null)" ] && mac_filter_info=OFF || mac_filter_info=ON + comp_box "${FWF_ITEM_1_PREFIX}\033[36m$common_ports\033[0m\t${FWF_ITEM_1_SUFFIX}" \ + "${FWF_ITEM_2_PREFIX}\033[36m$mac_filter_info\033[0m\t${FWF_ITEM_2_SUFFIX}" \ + "${FWF_ITEM_3_PREFIX}\033[36m$quic_rj\033[0m\t${FWF_ITEM_3_SUFFIX}" \ + "${FWF_ITEM_4_PREFIX}\033[36m$cn_ip_route\033[0m\t${FWF_ITEM_4_SUFFIX}" \ "$FWF_ITEM_5" \ "$FWF_ITEM_6" \ "" \ @@ -94,7 +94,7 @@ set_common_ports() { content_line "$FWF_ALLOWED_PORTS\033[36m$multiport\033[0m" fi separator_line "=" - btm_box "$FWF_PORT_MENU_1" \ + btm_box "${FWF_PORT_MENU_1_PREFIX}\033[36m$common_ports\033[0m${FWF_PORT_MENU_1_SUFFIX}" \ "$FWF_PORT_MENU_2" \ "$FWF_PORT_MENU_3" \ "$FWF_PORT_MENU_4" \ @@ -463,7 +463,7 @@ fw_filter_lan() { done separator_line "=" fi - btm_box "$FWF_FILTER_SWITCH" \ + btm_box "${FWF_FILTER_SWITCH_PREFIX}\033[33m$fw_filter_lan_over\033[0m${FWF_FILTER_SWITCH_SUFFIX}" \ "$FWF_FILTER_ADD_MAC" \ "$FWF_FILTER_ADD_IP" \ "$FWF_FILTER_REMOVE" \ diff --git a/scripts/menus/override.sh b/scripts/menus/override.sh index 3db8219f..2045bc28 100644 --- a/scripts/menus/override.sh +++ b/scripts/menus/override.sh @@ -3,10 +3,9 @@ [ -n "$__IS_MODULE_OVERRIDE" ] && return __IS_MODULE_OVERRIDE=1 -load_lang override - YAMLSDIR="$CRASHDIR"/yamls JSONSDIR="$CRASHDIR"/jsons +load_lang override # 配置文件覆写 override() { @@ -48,7 +47,7 @@ override() { ;; 9) comp_box "\033[33m$OVR_WARN_1\033[0m" \ - "\033[33m$OVR_WARN_2\033[0m" \ + "\033[33m${OVR_WARN_2_PREFIX}$crashcore${OVR_WARN_2_SUFFIX}\033[0m" \ "\033[33m$OVR_WARN_3\033[0m" sleep 2 btm_box "$OVR_WARN_CONFIRM" \