diff --git a/scripts/lang/chs/subconverter.lang b/scripts/lang/chs/subconverter.lang new file mode 100644 index 00000000..1b99a0ec --- /dev/null +++ b/scripts/lang/chs/subconverter.lang @@ -0,0 +1,33 @@ +SUBCONVERTER_MENU_GEN="生成包含全部节点、订阅的配置文件" +SUBCONVERTER_MENU_EXCLUDE="设置\033[31m排除节点正则\033[0m" +SUBCONVERTER_MENU_INCLUDE="设置\033[32m包含节点正则\033[0m" +SUBCONVERTER_MENU_RULE="选择\033[33m在线规则模版\033[0m" +SUBCONVERTER_MENU_SERVER="选择Subconverter服务器" +SUBCONVERTER_MENU_UA="自定义浏览器UA" + +SUBCONVERTER_INPUT="请输入" +SUBCONVERTER_BACK="或输入 0 返回上级菜单" + +SUBCONVERTER_EXCLUDE_HINT1="匹配关键字的节点会在导入时被【屏蔽】!" +SUBCONVERTER_INCLUDE_HINT1="仅有匹配关键字的节点才会被【导入】!!!" +SUBCONVERTER_KEYWORD_SPLIT="多个关键字可以用\033[30;47m | \033[0m号分隔" +SUBCONVERTER_REGEX_HINT="\033[32m支持正则表达式\033[0m,空格请使用\033[30;47m + \033[0m号替代" +SUBCONVERTER_EXCLUDE_INPUT="请直接输入节点过滤关键字" +SUBCONVERTER_INCLUDE_INPUT="请直接输入节点匹配关键字" +SUBCONVERTER_EXCLUDE_CLEAR="或输入 d \033[31m清空\033[0m节点过滤关键字" +SUBCONVERTER_INCLUDE_CLEAR="或输入 d \033[31m清空\033[0m节点匹配关键字" + +SUBCONVERTER_RULE_CURRENT="当前使用规则为:" +SUBCONVERTER_SERVER_HINT="以下为互联网采集的第三方服务器,具体安全性请自行斟酌!" +SUBCONVERTER_SERVER_THANKS="感谢以下作者的无私奉献!!!" +SUBCONVERTER_SERVER_CURRENT="当前使用后端为:" +SUBCONVERTER_SET_OK="设置成功!返回上级菜单" + +SUBCONVERTER_UA_HINT="无法正确获取配置文件时可尝试使用" +SUBCONVERTER_UA_CURRENT="当前UA:" +SUBCONVERTER_UA_AUTO="使用自动UA(默认)" +SUBCONVERTER_UA_NONE="不使用UA" +SUBCONVERTER_UA_CUSTOM="使用自定义UA" +SUBCONVERTER_UA_CLEAR="清空UA" +SUBCONVERTER_UA_CUSTOM_WARN="注意:\n自定义UA不可包含空格或特殊符号!" +SUBCONVERTER_UA_CUSTOM_INPUT="请直接输入自定义UA" diff --git a/scripts/lang/chs/uninstall.lang b/scripts/lang/chs/uninstall.lang new file mode 100644 index 00000000..53267d7a --- /dev/null +++ b/scripts/lang/chs/uninstall.lang @@ -0,0 +1,13 @@ +UNINSTALL_WARN="警告:该操作不可逆!" +UNINSTALL_CONFIRM="是否确认卸载ShellCrash?" +UNINSTALL_YES="是" +UNINSTALL_NO="否" +UNINSTALL_KEEP_CONFIRM="是否保留脚本配置及订阅文件?" +UNINSTALL_ENV_ERROR="环境变量配置有误,请尝试手动移除安装目录!" +UNINSTALL_DONE="已卸载ShellCrash相关文件!有缘再会!" +UNINSTALL_CLOSE_HINT="请手动关闭当前窗口以重置环境变量!" +UNINSTALL_CANCELED="操作已取消!" +UNINSTALL_CRON_CLASH="clash服务" +UNINSTALL_CRON_SUB="订阅链接" +UNINSTALL_CRON_INIT="ShellCrash初始化" +UNINSTALL_SSH_MARK="启用外网访问SSH服务" diff --git a/scripts/lang/en/subconverter.lang b/scripts/lang/en/subconverter.lang new file mode 100644 index 00000000..7761f82b --- /dev/null +++ b/scripts/lang/en/subconverter.lang @@ -0,0 +1,33 @@ +SUBCONVERTER_MENU_GEN="Generate config including all nodes and subscriptions" +SUBCONVERTER_MENU_EXCLUDE="Set \033[31mexclude node regex\033[0m" +SUBCONVERTER_MENU_INCLUDE="Set \033[32minclude node regex\033[0m" +SUBCONVERTER_MENU_RULE="Select \033[33monline rule template\033[0m" +SUBCONVERTER_MENU_SERVER="Select Subconverter server" +SUBCONVERTER_MENU_UA="Custom browser UA" + +SUBCONVERTER_INPUT="Please enter" +SUBCONVERTER_BACK="or enter 0 to return" + +SUBCONVERTER_EXCLUDE_HINT1="Nodes matching keywords will be blocked during import!" +SUBCONVERTER_INCLUDE_HINT1="Only nodes matching keywords will be imported!!!" +SUBCONVERTER_KEYWORD_SPLIT="Use \033[30;47m | \033[0m to separate multiple keywords" +SUBCONVERTER_REGEX_HINT="\033[32mRegex is supported\033[0m. Use \033[30;47m + \033[0m instead of spaces" +SUBCONVERTER_EXCLUDE_INPUT="Enter exclude keyword(s) directly" +SUBCONVERTER_INCLUDE_INPUT="Enter include keyword(s) directly" +SUBCONVERTER_EXCLUDE_CLEAR="or enter d to \033[31mclear\033[0m exclude keywords" +SUBCONVERTER_INCLUDE_CLEAR="or enter d to \033[31mclear\033[0m include keywords" + +SUBCONVERTER_RULE_CURRENT="Current rule: " +SUBCONVERTER_SERVER_HINT="The following third-party servers are collected from the internet. Please evaluate their security by yourself!" +SUBCONVERTER_SERVER_THANKS="Thanks to the contributors below for their great work!!!" +SUBCONVERTER_SERVER_CURRENT="Current backend: " +SUBCONVERTER_SET_OK="Settings saved. Returning to previous menu" + +SUBCONVERTER_UA_HINT="Try this if the config file cannot be fetched correctly" +SUBCONVERTER_UA_CURRENT="Current UA: " +SUBCONVERTER_UA_AUTO="Use auto UA (default)" +SUBCONVERTER_UA_NONE="Do not use UA" +SUBCONVERTER_UA_CUSTOM="Use custom UA" +SUBCONVERTER_UA_CLEAR="Clear UA" +SUBCONVERTER_UA_CUSTOM_WARN="Note:\nCustom UA cannot contain spaces or special symbols!" +SUBCONVERTER_UA_CUSTOM_INPUT="Enter custom UA" diff --git a/scripts/lang/en/uninstall.lang b/scripts/lang/en/uninstall.lang new file mode 100644 index 00000000..3d2f1ede --- /dev/null +++ b/scripts/lang/en/uninstall.lang @@ -0,0 +1,13 @@ +UNINSTALL_WARN="Warning: this action is irreversible!" +UNINSTALL_CONFIRM="Are you sure you want to uninstall ShellCrash?" +UNINSTALL_YES="Yes" +UNINSTALL_NO="No" +UNINSTALL_KEEP_CONFIRM="Keep script configs and subscription files?" +UNINSTALL_ENV_ERROR="Environment variable configuration is incorrect. Please remove the installation directory manually!" +UNINSTALL_DONE="ShellCrash related files have been removed. Goodbye!" +UNINSTALL_CLOSE_HINT="Please close the current terminal window manually to reset environment variables!" +UNINSTALL_CANCELED="Operation canceled!" +UNINSTALL_CRON_CLASH="clash service" +UNINSTALL_CRON_SUB="subscription link" +UNINSTALL_CRON_INIT="ShellCrash initialization" +UNINSTALL_SSH_MARK="Enable SSH access from WAN" diff --git a/scripts/menus/subconverter.sh b/scripts/menus/subconverter.sh index 7b1a7290..d1295e52 100644 --- a/scripts/menus/subconverter.sh +++ b/scripts/menus/subconverter.sh @@ -7,18 +7,20 @@ __IS_MODULE_SUBCONVERTER=1 [ -z "$rule_link" ] && rule_link=1 [ -z "$server_link" ] && server_link=1 +load_lang subconverter + # Subconverter在线订阅转换 subconverter() { while true; do - comp_box "1) \033[32m生成\033[0m包含全部节点、订阅的配置文件"\ - "2) 设置\033[31m排除节点正则\033[0m \033[47;30m$exclude\033[0m"\ - "3) 设置\033[32m包含节点正则\033[0m \033[47;30m$include\033[0m"\ - "4) 选择\033[33m在线规则模版\033[0m"\ - "5) 选择\033[0mSubconverter服务器\033[0m"\ - "6) 自定义浏览器UA \033[32m$user_agent\033[0m"\ + comp_box "1) \033[32m$SUBCONVERTER_MENU_GEN\033[0m"\ + "2) $SUBCONVERTER_MENU_EXCLUDE \033[47;30m$exclude\033[0m"\ + "3) $SUBCONVERTER_MENU_INCLUDE \033[47;30m$include\033[0m"\ + "4) $SUBCONVERTER_MENU_RULE"\ + "5) $SUBCONVERTER_MENU_SERVER"\ + "6) $SUBCONVERTER_MENU_UA \033[32m$user_agent\033[0m"\ ""\ "0) $COMMON_BACK" - read -r -p "请输入对应数字> " num + read -r -p "$COMMON_INPUT> " num case "$num" in "" | 0) break @@ -57,13 +59,13 @@ subconverter() { # 排除节点正则 gen_link_flt() { - comp_box "\033[33m匹配关键字的节点会在导入时被【屏蔽】!\033[0m" \ - "多个关键字可以用\033[30;47m | \033[0m号分隔" \ - "\033[32m支持正则表达式\033[0m,空格请使用\033[30;47m + \033[0m号替代" - btm_box "\033[36m请直接输入节点过滤关键字\033[0m" \ - "或输入 d \033[31m清空\033[0m节点过滤关键字" \ - "或输入 0 返回上级菜单" - read -r -p "请输入> " res + comp_box "\033[33m$SUBCONVERTER_EXCLUDE_HINT1\033[0m" \ + "$SUBCONVERTER_KEYWORD_SPLIT" \ + "$SUBCONVERTER_REGEX_HINT" + btm_box "\033[36m$SUBCONVERTER_EXCLUDE_INPUT\033[0m" \ + "$SUBCONVERTER_EXCLUDE_CLEAR" \ + "$SUBCONVERTER_BACK" + read -r -p "$SUBCONVERTER_INPUT> " res case "$res" in 0) return 0 @@ -85,13 +87,13 @@ gen_link_flt() { # 包含节点正则 gen_link_ele() { - comp_box "\033[33m仅有匹配关键字的节点才会被【导入】!!!\033[0m" \ - "多个关键字可以用\033[30;47m | \033[0m号分隔" \ - "\033[32m支持正则表达式\033[0m,空格请使用\033[30;47m + \033[0m号替代" - btm_box "\033[36m请直接输入节点匹配关键字\033[0m" \ - "或输入 d \033[31m清空\033[0m节点匹配关键字" \ - "或输入 0 返回上级菜单" - read -r -p "请输入> " res + comp_box "\033[33m$SUBCONVERTER_INCLUDE_HINT1\033[0m" \ + "$SUBCONVERTER_KEYWORD_SPLIT" \ + "$SUBCONVERTER_REGEX_HINT" + btm_box "\033[36m$SUBCONVERTER_INCLUDE_INPUT\033[0m" \ + "$SUBCONVERTER_INCLUDE_CLEAR" \ + "$SUBCONVERTER_BACK" + read -r -p "$SUBCONVERTER_INPUT> " res case "$res" in 0) return 0 @@ -115,11 +117,11 @@ gen_link_ele() { gen_link_config() { list=$(grep -aE '^5' "$CRASHDIR"/configs/servers.list | awk '{print $2$4}') now=$(grep -aE '^5' "$CRASHDIR"/configs/servers.list | sed -n ""$rule_link"p" | awk '{print $2}') - comp_box "当前使用规则为:\033[33m$now\033[0m" + comp_box "$SUBCONVERTER_RULE_CURRENT\033[33m$now\033[0m" list_box "$list" content_line "" common_back - read -r -p "请输入对应数字> " num + read -r -p "$COMMON_INPUT> " num totalnum=$(grep -acE '^5' "$CRASHDIR"/configs/servers.list) if [ -z "$num" ] || [ "$num" -gt "$totalnum" ]; then errornum @@ -129,7 +131,7 @@ gen_link_config() { # 将对应标记值写入配置 rule_link=$num if setconfig rule_link "$rule_link"; then - msg_alert "\033[32m设置成功!返回上级菜单\033[0m" + msg_alert "\033[32m$SUBCONVERTER_SET_OK\033[0m" else common_failed fi @@ -141,14 +143,14 @@ gen_link_server() { list=$(grep -aE '^3|^4' "$CRASHDIR"/configs/servers.list | awk '{print $3" "$2}') now=$(grep -aE '^3|^4' "$CRASHDIR"/configs/servers.list | sed -n ""$server_link"p" | awk '{print $3}') - comp_box "\033[36m以下为互联网采集的第三方服务器,具体安全性请自行斟酌!\033[0m" \ - "\033[32m感谢以下作者的无私奉献!!!\033[0m" \ + comp_box "\033[36m$SUBCONVERTER_SERVER_HINT\033[0m" \ + "\033[32m$SUBCONVERTER_SERVER_THANKS\033[0m" \ "" \ - "当前使用后端为:\033[33m$now\033[0m" + "$SUBCONVERTER_SERVER_CURRENT\033[33m$now\033[0m" list_box "$list" content_line "" common_back - read -r -p "请输入对应数字> " num + read -r -p "$COMMON_INPUT> " num totalnum=$(grep -acE '^3|^4' "$CRASHDIR"/configs/servers.list) if [ -z "$num" ] || [ "$num" -gt "$totalnum" ]; then errornum @@ -158,7 +160,7 @@ gen_link_server() { # 将对应标记值写入配置 server_link=$num if setconfig server_link "$server_link"; then - content_line "\033[32m设置成功!返回上级菜单\033[0m" + content_line "\033[32m$SUBCONVERTER_SET_OK\033[0m" else common_failed fi @@ -167,16 +169,16 @@ gen_link_server() { set_sub_ua() { while true; do - comp_box "\033[36m无法正确获取配置文件时可尝试使用\033[0m" \ + comp_box "\033[36m$SUBCONVERTER_UA_HINT\033[0m" \ "" \ - "当前UA:$user_agent" - btm_box "1) 使用自动UA(默认)"\ - "2) 不使用UA"\ - "3) 使用自定义UA"\ - "4) 清空UA"\ + "$SUBCONVERTER_UA_CURRENT$user_agent" + btm_box "1) $SUBCONVERTER_UA_AUTO"\ + "2) $SUBCONVERTER_UA_NONE"\ + "3) $SUBCONVERTER_UA_CUSTOM"\ + "4) $SUBCONVERTER_UA_CLEAR"\ ""\ - "0) 返回上级菜单" - read -r -p "请输入对应数字> " num + "0) $COMMON_BACK" + read -r -p "$COMMON_INPUT> " num case "$num" in 0) break @@ -188,10 +190,10 @@ set_sub_ua() { user_agent='none' ;; 3) - comp_box "\033[33m注意:\n自定义UA不可包含空格或特殊符号!\033[0m" - btm_box "\033[36m请直接输入自定义UA\033[0m" \ - "或输入 0 返回上级菜单" - read -r -p "请输入> " text + comp_box "\033[33m$SUBCONVERTER_UA_CUSTOM_WARN\033[0m" + btm_box "\033[36m$SUBCONVERTER_UA_CUSTOM_INPUT\033[0m" \ + "$SUBCONVERTER_BACK" + read -r -p "$SUBCONVERTER_INPUT> " text if [ "$text" = 0 ]; then continue elif [ -n "$text" ]; then diff --git a/scripts/menus/uninstall.sh b/scripts/menus/uninstall.sh index bd16286f..57b00920 100644 --- a/scripts/menus/uninstall.sh +++ b/scripts/menus/uninstall.sh @@ -1,26 +1,28 @@ #!/bin/sh # Copyright (C) Juewuy +load_lang uninstall + # 卸载 uninstall() { - comp_box "\033[31m警告:该操作不可逆!\033[0m" \ - "是否确认卸载ShellCrash?" - btm_box "1) 是" \ - "0) 否" + comp_box "\033[31m$UNINSTALL_WARN\033[0m" \ + "$UNINSTALL_CONFIRM" + btm_box "1) $UNINSTALL_YES" \ + "0) $UNINSTALL_NO" read -r -p "$COMMON_INPUT> " res if [ "$res" = '1' ]; then # 停止服务 "$CRASHDIR"/start.sh stop 2>/dev/null - "$CRASHDIR"/start.sh cronset "clash服务" 2>/dev/null - "$CRASHDIR"/start.sh cronset "订阅链接" 2>/dev/null - "$CRASHDIR"/start.sh cronset "ShellCrash初始化" 2>/dev/null + "$CRASHDIR"/start.sh cronset "$UNINSTALL_CRON_CLASH" 2>/dev/null + "$CRASHDIR"/start.sh cronset "$UNINSTALL_CRON_SUB" 2>/dev/null + "$CRASHDIR"/start.sh cronset "$UNINSTALL_CRON_INIT" 2>/dev/null "$CRASHDIR"/start.sh cronset "task.sh" 2>/dev/null # 移除安装目录 if [ -n "$CRASHDIR" ] && [ "$CRASHDIR" != '/' ]; then - comp_box "是否保留脚本配置及订阅文件?" - btm_box "1) 是" \ - "0) 否" + comp_box "$UNINSTALL_KEEP_CONFIRM" + btm_box "1) $UNINSTALL_YES" \ + "0) $UNINSTALL_NO" read -r -p "$COMMON_INPUT> " res if [ "$res" = '1' ]; then mv -f "$CRASHDIR"/configs /tmp/ShellCrash/configs_bak @@ -34,7 +36,7 @@ uninstall() { rm -rf "$CRASHDIR" fi else - msg_alert "\033[31m环境变量配置有误,请尝试手动移除安装目录!\033[0m" + msg_alert "\033[31m$UNINSTALL_ENV_ERROR\033[0m" fi # 移除其他内容 @@ -48,9 +50,9 @@ uninstall() { } sed -i '/all_proxy/'d /etc/profile 2>/dev/null sed -i '/ALL_PROXY/'d /etc/profile 2>/dev/null - sed -i "/启用外网访问SSH服务/d" /etc/firewall.user 2>/dev/null - sed -i '/ShellCrash初始化/'d /etc/storage/started_script.sh 2>/dev/null - sed -i '/ShellCrash初始化/'d /jffs/.asusrouter 2>/dev/null + sed -i "/$UNINSTALL_SSH_MARK/d" /etc/firewall.user 2>/dev/null + sed -i "/$UNINSTALL_CRON_INIT/d" /etc/storage/started_script.sh 2>/dev/null + sed -i "/$UNINSTALL_CRON_INIT/d" /jffs/.asusrouter 2>/dev/null [ "$BINDIR" != "$CRASHDIR" ] && rm -rf "$BINDIR" rm -rf /etc/init.d/shellcrash rm -rf /etc/systemd/system/shellcrash.service @@ -62,12 +64,12 @@ uninstall() { userdel -r shellcrash 2>/dev/null nvram set script_usbmount="" 2>/dev/null nvram commit 2>/dev/null - comp_box "\033[36m已卸载ShellCrash相关文件!有缘再会!\033[0m" \ - "\033[33m请手动关闭当前窗口以重置环境变量!\033[0m" + comp_box "\033[36m$UNINSTALL_DONE\033[0m" \ + "\033[33m$UNINSTALL_CLOSE_HINT\033[0m" line_break sleep 1 exit 0 else - msg_alert "\033[31m操作已取消!\033[0m" + msg_alert "\033[31m$UNINSTALL_CANCELED\033[0m" fi }