mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-12 00:11:31 +00:00
feat(i18n): localize settings and dns menu leftovers
This commit is contained in:
@@ -126,3 +126,33 @@ ADV_TABLE_INPUT="Please enter the routing table ID (do not modify unless necessa
|
||||
# =================================================
|
||||
IPV6_REDIR="IPv6 Transparent Routing (Hijack IPv6 Traffic)"
|
||||
IPV6_DNS="IPv6 DNS Resolution (Return IPv6 addresses)"
|
||||
SET_YES="Yes"
|
||||
SET_NO_BACK="No, back"
|
||||
SET_SKIP_CERT_NOW="Current status: "
|
||||
SET_ENABLED="enabled"
|
||||
SET_DISABLED="disabled"
|
||||
SET_SKIP_CERT_ENABLE_Q=" skip local certificate verification. Enable now?"
|
||||
SET_SKIP_CERT_DISABLE_Q=" skip local certificate verification. Disable now?"
|
||||
SET_SNIFFER_NOW="Current status: "
|
||||
SET_SNIFFER_ENABLE_Q=" domain sniffer. Enable now?"
|
||||
SET_SNIFFER_DISABLE_Q=" domain sniffer. Disable now?"
|
||||
SET_LANG_ZH="简体中文"
|
||||
SET_LANG_EN="English"
|
||||
SET_SWITCH_RERUN="Switched successfully! Please re-run the script!"
|
||||
SET_SWITCH_OK="Switched successfully!"
|
||||
SET_MODE_SUFFIX="mode"
|
||||
SET_SET_TO="Set to "
|
||||
SET_BYPASS_TCP="TCP bypass forwarding"
|
||||
SET_BYPASS_TU="TCP&UDP bypass forwarding"
|
||||
SET_BYPASS_TCP_DESC="forward TCP traffic only to bypass router"
|
||||
SET_BYPASS_TU_DESC="forward TCP&UDP traffic to bypass router"
|
||||
SET_FW_AREA_CURRENT="Current hijack scope: "
|
||||
SET_WARN="Notice:"
|
||||
SET_DESC="Description:"
|
||||
SET_BYPASS_WARN_1="This feature has risks. Do not use without network knowledge!"
|
||||
SET_BYPASS_WARN_2="For UDP proxy, ensure bypass router runs a UDP-capable mode!"
|
||||
SET_BYPASS_WARN_3="With systemd startup, core still runs idle. Conservative mode is recommended!"
|
||||
SET_BYPASS_DESC_1="This mode does not start core; it only configures firewall forwarding and downstream devices need no extra gateway/DNS setup"
|
||||
SET_BYPASS_DESC_2="Supports firewall routing split and device filtering, supports some cron tasks, but not IPv6"
|
||||
SET_INPUT_BYPASS_IPV4="Please enter bypass-router IPv4 address"
|
||||
SET_TIPS_ENTER_BACK="Tip: press Enter directly to return"
|
||||
|
||||
@@ -4,3 +4,97 @@ TASK_RECOM_TITLE="Enable the following recommended automatic tasks?"
|
||||
TASK_RECOM_ITEM_1="Save Dashboard select every 10 minutes"
|
||||
TASK_RECOM_ITEM_2="Synchronize NTP after service startup"
|
||||
TASK_RECOM_ITEM_3="Daily service restart at 03:00"
|
||||
TASK5_RUN_TASK=" run task: "
|
||||
TASK5_CONFIRM_ADD_CRON="Confirm adding scheduled task?"
|
||||
TASK5_YES="Yes"
|
||||
TASK5_NO="No"
|
||||
TASK5_TASK_PREFIX="Task ["
|
||||
TASK5_TASK_ADDED="] \033[32madded!\033[0m"
|
||||
TASK5_USER_ADD_HINT1="Command may contain spaces, please ensure it is executable!"
|
||||
TASK5_USER_ADD_HINT2="Do not append conditions. Set conditions after adding command."
|
||||
TASK5_USER_ADD_HINT3="You can also edit "
|
||||
TASK5_USER_ADD_HINT4=" manually to add commands"
|
||||
TASK5_INPUT_CMD="Please input command directly"
|
||||
TASK5_OR_BACK="Or input 0 to return"
|
||||
TASK5_INPUT="Please enter"
|
||||
TASK5_CHECK_INPUT="Please check input: "
|
||||
TASK5_INPUT_REMARK="Please enter task remark"
|
||||
TASK5_CUSTOM_TASK="custom_task_"
|
||||
TASK5_CUSTOM_ADDED="Custom task added!"
|
||||
TASK5_INPUT_ERROR="Invalid input, please retry!"
|
||||
TASK5_USER_DEL_HINT1="Input ID to remove custom task (built-in tasks won't be affected)"
|
||||
TASK5_USER_DEL_HINT2="You may also edit "
|
||||
TASK5_NO_CUSTOM_TASK="No custom task has been added yet"
|
||||
TASK5_SELECT_ADD="Please select task to add:"
|
||||
TASK5_SELECT_COND="Select execution condition for task "
|
||||
TASK5_SELECT_COND2=":"
|
||||
TASK5_COND_1="Scheduled task \033[32mweekly\033[0m"
|
||||
TASK5_COND_2="Scheduled task \033[32mdaily\033[0m"
|
||||
TASK5_COND_3="Scheduled task \033[32mhourly\033[0m"
|
||||
TASK5_COND_4="Scheduled task \033[32mminutely\033[0m"
|
||||
TASK5_WARN_LINE1=" --------- \033[31mWARNING\033[0m ---------"
|
||||
TASK5_WARN_LINE2=" Do not use advanced triggers unless you know what you are doing!"
|
||||
TASK5_WARN_LINE3=" ----------------------------------------"
|
||||
TASK5_COND_5="Service \033[33mbefore start\033[0m"
|
||||
TASK5_COND_6="Service \033[33mafter start\033[0m"
|
||||
TASK5_COND_7="Service \033[33mrun every minute\033[0m"
|
||||
TASK5_COND_8="After firewall service \033[33mrestart\033[0m"
|
||||
TASK5_WEEK_HINT1="Input 1~7 for day of week (7=Sunday)"
|
||||
TASK5_WEEK_HINT2="Input like 1,4,0 for Monday/Thursday/Sunday"
|
||||
TASK5_WEEK_HINT3="Input 1~5 for Monday to Friday"
|
||||
TASK5_WEEK_INPUT="Run on which weekday"
|
||||
TASK5_HOUR_INPUT1="Run at which hour of that day (0~23)"
|
||||
TASK5_CRON_WEEK="Weekly "
|
||||
TASK5_CRON_WEEK2=" @ "
|
||||
TASK5_OCLOCK=":00"
|
||||
TASK5_DAY_HINT1="Input 1,7,15 for run at 1/7/15 o'clock"
|
||||
TASK5_DAY_HINT2="Input 6~18 for every hour between 6 and 18"
|
||||
TASK5_HOUR_INPUT2="Run at which hour daily (0~23)"
|
||||
TASK5_MIN_INPUT="Run at which minute (0~59)"
|
||||
TASK5_CRON_DAY="Daily "
|
||||
TASK5_POINT=":"
|
||||
TASK5_MINUTE=""
|
||||
TASK5_EVERY_HOUR_INPUT="Run every how many hours (1~23)"
|
||||
TASK5_EVERY="Every "
|
||||
TASK5_HOUR=" hour(s)"
|
||||
TASK5_EVERY_MIN_INPUT="Run every how many minutes (1~59)"
|
||||
TASK5_MIN=" minute(s)"
|
||||
TASK5_BFSTART="Before service start "
|
||||
TASK5_AFSTART="After service start "
|
||||
TASK5_RUNNING_HINT1="Input 10 for every 10 mins, 1440 for every 24 hrs"
|
||||
TASK5_RUNNING_HINT2="Values >60 mins will be rounded by hour under current timezone"
|
||||
TASK5_RUNNING_INPUT="Run every how many minutes (1~1440)"
|
||||
TASK5_RUNNING_PREFIX="During runtime every "
|
||||
TASK5_AFFW_HINT="This will inject startup code into /etc/init.d/firewall"
|
||||
TASK5_CONFIRM_CONTINUE="Continue?"
|
||||
TASK5_AFFW_PREFIX="After firewall restart "
|
||||
TASK5_GUARD_WORD="guard"
|
||||
TASK5_OLD_PREFIX="legacy-"
|
||||
TASK5_NONE_TO_MANAGE="No task available to manage!"
|
||||
TASK5_ADDED_TASKS="Added tasks:"
|
||||
TASK5_CLEAR_OLD="Clear legacy tasks"
|
||||
TASK5_CLEAR_ALL="Clear task list"
|
||||
TASK5_OLD_CLEARED="Legacy tasks cleared!"
|
||||
TASK5_ALL_CLEARED="All tasks cleared!"
|
||||
TASK5_OLD_NOT_SUPPORT="Legacy tasks cannot be managed, remove them?"
|
||||
TASK5_NO_BACK="No, return"
|
||||
TASK5_CURRENT_TASK="Current task: "
|
||||
TASK5_EDIT_TASK="\033[33mEdit\033[0m current task"
|
||||
TASK5_DEL_TASK="\033[31mDelete\033[0m current task"
|
||||
TASK5_RUN_ONCE="\033[32mRun once\033[0m now"
|
||||
TASK5_VIEW_RECORD="View \033[33mexecution record\033[0m"
|
||||
TASK5_RUN_OK="success!"
|
||||
TASK5_RUN_FAIL="failed!"
|
||||
TASK5_RECORD_NOT_FOUND="No execution record found!"
|
||||
TASK5_USER_FILE_HEADER="#task_id(>200 in order)#task_command#task_desc(no # in cmd or desc)"
|
||||
TASK5_MENU_TITLE="Scheduled Tasks"
|
||||
TASK5_MENU_1="Add \033[32mautomatic task\033[0m"
|
||||
TASK5_MENU_2="Manage \033[33mtask list\033[0m"
|
||||
TASK5_MENU_3="View \033[36mtask logs\033[0m"
|
||||
TASK5_MENU_4="Configure \033[36mlog push\033[0m"
|
||||
TASK5_MENU_5="Add \033[33mcustom task\033[0m"
|
||||
TASK5_MENU_6="Delete \033[33mcustom task\033[0m"
|
||||
TASK5_MENU_7="Use \033[32mrecommended settings\033[0m"
|
||||
TASK5_TASK_GREP="Task ["
|
||||
TASK5_LOG_NOT_FOUND="No task-related log found!"
|
||||
TASK5_PUSH_HINT="Please configure push channel and switch in log tools"
|
||||
|
||||
67
scripts/lang/en/6_core_config.lang
Normal file
67
scripts/lang/en/6_core_config.lang
Normal file
@@ -0,0 +1,67 @@
|
||||
CORECFG_TITLE="Configuration Management"
|
||||
CORECFG_HINT_SELECT_PROVIDER="Input a number to manage corresponding provider"
|
||||
CORECFG_MENU_A="\033[32mAdd provider\033[0m (subscription/share link/local file)"
|
||||
CORECFG_MENU_B="\033[36mGenerate local config\033[0m"
|
||||
CORECFG_MENU_C="\033[33mGenerate online config\033[0m"
|
||||
CORECFG_MENU_D="\033[31mClear provider list\033[0m"
|
||||
CORECFG_MENU_E="\033[36mCustom config file\033[0m"
|
||||
CORECFG_CORE_ONLY="Only for Mihomo/singboxr core, please switch core!"
|
||||
CORECFG_ADD_PROVIDER_FIRST="Please add provider first!"
|
||||
CORECFG_CLEAR_WARN="Warning: this will delete all providers and cannot be undone!"
|
||||
CORECFG_CLEAR_CONFIRM="Confirm clearing provider list:"
|
||||
CORECFG_YES="Yes"
|
||||
CORECFG_NO="No"
|
||||
CORECFG_NO_BACK="No, return"
|
||||
CORECFG_INPUT_ALNUM="Please input letter or number"
|
||||
CORECFG_INPUT="Please enter"
|
||||
CORECFG_FILL_REQUIRED="Please complete required fields first!"
|
||||
CORECFG_START_APPLY="Start service to apply config now?"
|
||||
CORECFG_PROVIDER_SUPPORT="Supports adding subscription/share link/local file as provider"
|
||||
CORECFG_SET_NAME="Set \033[36mname/alias\033[0m\t"
|
||||
CORECFG_SET_LINK="Set \033[32mlink/path\033[0m:\t"
|
||||
CORECFG_SET_OVERRIDE="Set \033[33mlocal generation override\033[0m"
|
||||
CORECFG_SAVE_PROVIDER="\033[36mSave this provider\033[0m"
|
||||
CORECFG_DEL_PROVIDER="\033[31mDelete this provider\033[0m"
|
||||
CORECFG_MORE_CONFIG_HINT="For detailed settings below, go to corresponding feature page."
|
||||
CORECFG_GEN_LOCAL_ONE="\033[32mLocal generate\033[0m config with this provider only"
|
||||
CORECFG_GEN_ONLINE_ONE="\033[33mOnline generate\033[0m config with this provider only"
|
||||
CORECFG_GET_ONLINE_DIRECT="Fetch this config online directly (without conversion)"
|
||||
CORECFG_USE_DIRECT="Use this file directly as config (without local generation)"
|
||||
CORECFG_NAME_HINT="Note:\nName/alias cannot duplicate, cannot be pure digits, and should not be too long!"
|
||||
CORECFG_INPUT_NAME="Please input name/alias"
|
||||
CORECFG_OR_BACK="or input 0 to return"
|
||||
CORECFG_LINK_HINT1="\033[33mSubscription link\033[0m:\nClash config subscription URL starting with https/http"
|
||||
CORECFG_LINK_HINT2="\033[36mShare link\033[0m:"
|
||||
CORECFG_LINK_HINT3="\033[33mLocal file\033[0m:\nMust be placed under "
|
||||
CORECFG_LINK_HINT4=""
|
||||
CORECFG_LINK_HINT5="\033[36mBase64 \033[0m:\nPlease write to local file directly"
|
||||
CORECFG_INPUT0_BACK="Input 0 to return"
|
||||
CORECFG_SELECT_FILE_OR_LINK="Select file or input link"
|
||||
CORECFG_INPUT_LINK="Please input link directly"
|
||||
CORECFG_DANGER1="Warning:\nThis feature is incompatible with skip certificate verification"
|
||||
CORECFG_DANGER2="Please make sure you fully understand what you are doing"
|
||||
CORECFG_DANGER_CONFIRM="I confirm I can troubleshoot by myself"
|
||||
CORECFG_INTERVAL1="Set \033[33mhealth-check interval\033[0m:\t"
|
||||
CORECFG_INTERVAL2="Set \033[36mauto-update interval\033[0m:\t"
|
||||
CORECFG_MIN="min"
|
||||
CORECFG_HOUR="hour"
|
||||
CORECFG_SET_UA="Set \033[33mbrowser UA\033[0m:\t"
|
||||
CORECFG_SET_EXCLUDE="Set \033[31mexclude regex\033[0m:\t"
|
||||
CORECFG_SET_INCLUDE="Set \033[32minclude regex\033[0m:\t"
|
||||
CORECFG_CUR_INTERVAL="Current health-check interval:"
|
||||
CORECFG_INPUT_INTERVAL1="Input health-check interval (minutes)"
|
||||
CORECFG_RESET_INTERVAL1="or input r to reset to default (3 min)"
|
||||
CORECFG_INPUT_INTERVAL2="Input auto-update interval (hours)"
|
||||
CORECFG_RESET_INTERVAL2="or input r to reset to default (12 hours)"
|
||||
CORECFG_CUR_UA_NONE="Current browser UA: none"
|
||||
CORECFG_CUR_UA="Current browser UA: "
|
||||
CORECFG_INPUT_UA="Input browser UA"
|
||||
CORECFG_RESET_UA="or input r to reset UA to default (clash.meta)"
|
||||
CORECFG_CUR_EXCLUDE_NONE="Current exclude rule: none"
|
||||
CORECFG_CUR_EXCLUDE="Current exclude rule: "
|
||||
CORECFG_INPUT_EXCLUDE="Input exclude keyword(s) (regex supported, no spaces)"
|
||||
CORECFG_CLEAR_EXCLUDE="or input c to clear exclude rule"
|
||||
CORECFG_CUR_INCLUDE_NONE="Current include rule: none"
|
||||
CORECFG_CUR_INCLUDE="Current include rule: "
|
||||
CORECFG_INPUT_INCLUDE="Input include keyword(s) (regex supported, no spaces)"
|
||||
CORECFG_CLEAR_INCLUDE="or input c to clear include rule"
|
||||
16
scripts/lang/en/7_gateway.lang
Normal file
16
scripts/lang/en/7_gateway.lang
Normal file
@@ -0,0 +1,16 @@
|
||||
GW_TITLE="Access & Control Menu"
|
||||
GW_WARN="Notice: "
|
||||
GW_FW_VPS_HINT="If running on a VPS, also allow related ports in your VPS security policy."
|
||||
GW_FW_PORT_LIMIT="Up to 10 allowed ports are supported. Please remove some first."
|
||||
GW_INPUT_ALLOW_PORT="Enter the port to allow"
|
||||
GW_OK="Done"
|
||||
GW_CORE_UNSUPPORTED=" core does not support this feature yet, please switch core first!"
|
||||
GW_TG_DONE_PREFIX="Telegram bot setup completed! Use"
|
||||
GW_TG_DONE_SUFFIX="to open the function menu!"
|
||||
GW_SET="Configured"
|
||||
GW_BOUND="Bound"
|
||||
GW_INPUT_PORT_DEL0="Enter port (0 to delete)"
|
||||
GW_INPUT_WSPATH="Enter ws-path (0 to delete)"
|
||||
GW_INPUT_UUID="Enter UUID (0 to delete)"
|
||||
GW_INPUT_HOST="Enter your public IP (v4/v6) or domain"
|
||||
GW_SHARE_LINK_HINT="Your share link (do not share casually):"
|
||||
11
scripts/lang/en/8_tools.lang
Normal file
11
scripts/lang/en/8_tools.lang
Normal file
@@ -0,0 +1,11 @@
|
||||
TOOLS_TITLE="Tools & Optimization"
|
||||
TOOLS_SSH_DISABLE="Disable"
|
||||
TOOLS_SSH_ENABLE="Enable"
|
||||
TOOLS_ERR_PORT="Invalid input! Please enter a valid number (1000-65535)!"
|
||||
TOOLS_ERR_PORT_OCCUPIED="This port is occupied by another process, please try another one!"
|
||||
TOOLS_SSH_SET_OK="Set successfully, please re-enable WAN SSH access!"
|
||||
TOOLS_SSH_ENABLED="WAN SSH access enabled!"
|
||||
TOOLS_SSH_DISABLED="WAN SSH access disabled!"
|
||||
TOOLS_DISABLE="Disable"
|
||||
TOOLS_ENABLE="Enable"
|
||||
TOOLS_CONFIGURED="Configured"
|
||||
49
scripts/lang/en/9_upgrade.lang
Normal file
49
scripts/lang/en/9_upgrade.lang
Normal file
@@ -0,0 +1,49 @@
|
||||
UPG_ERR_TRY_OTHER_SOURCE="Please switch to another source and try downloading again!"
|
||||
UPG_ERR_LOCAL_INSTALL="Or refer to \033[32;4mhttps://juewuy.github.io/bdaz\033[0m for local installation!"
|
||||
UPG_TITLE="Update & Support"
|
||||
UPG_CUR_DIR_SPACE="Current directory"
|
||||
UPG_LOW_SPACE_HINT="Low free space in current directory, consider enabling low-flash mode!"
|
||||
UPG_MENU_SCRIPT="Update "
|
||||
UPG_MENU_SCRIPT_NAME="script"
|
||||
UPG_MENU_CORE="Switch/Update "
|
||||
UPG_MENU_CORE_NAME="core"
|
||||
UPG_MENU_GEO="Install/Update local "
|
||||
UPG_MENU_GEO_NAME="database files"
|
||||
UPG_MENU_DB="Install/Update local "
|
||||
UPG_MENU_DB_NAME="Dashboard"
|
||||
UPG_MENU_CRT="Install/Update local "
|
||||
UPG_MENU_CRT_NAME="certificates"
|
||||
UPG_MENU_PAC=" proxy view"
|
||||
UPG_MENU_SOURCE="Switch "
|
||||
UPG_MENU_SOURCE_NAME="source and branch"
|
||||
UPG_MENU_UNINSTALL="Uninstall ShellCrash"
|
||||
UPG_MENU_THANKS="Thanks list"
|
||||
UPG_PAC_LINK="PAC URL: "
|
||||
UPG_PAC_GUIDE="PAC guide: "
|
||||
UPG_THANKS_TITLE="Thanks to the following projects and developers!"
|
||||
UPG_THANKS_SPECIAL="Special thanks: \033[36mall contributors and sponsors!\033[0m"
|
||||
UPG_CHECKING="Checking updates..."
|
||||
UPG_CHECK_OK="Update check succeeded"
|
||||
UPG_CHECK_FAIL="Update check failed! Please switch source and retry!"
|
||||
UPG_DOWNLOAD_FAIL="Download failed!"
|
||||
UPG_EXTRACTING="Extracting files..."
|
||||
UPG_EXTRACT_FAIL="Extraction failed!"
|
||||
UPG_SCRIPT_OK="Script update succeeded!"
|
||||
UPG_SCRIPT_WARN="Note: service will be stopped during update!"
|
||||
UPG_SCRIPT_CUR_VER="Current script version: "
|
||||
UPG_SCRIPT_NEW_VER="Latest script version: "
|
||||
UPG_UPDATE_NOW="Update now"
|
||||
UPG_SCRIPT_MGR_OK="Manager script updated successfully!"
|
||||
UPG_CPUCORE_HINT1="Use only when CPU architecture detection fails or core cannot run!"
|
||||
UPG_CPUCORE_HINT2="Not sure how to get core arch?"
|
||||
UPG_CPUCORE_HINT3="Refer to: "
|
||||
UPG_CPUCORE_LIST="Available online CPU architectures:"
|
||||
UPG_CPUCORE_ERR="Please enter a valid CPU architecture!"
|
||||
UPG_CORETYPE_CONFIRM="Please confirm custom core type:"
|
||||
UPG_CORE_SWITCH_PREFIX="Switched from "
|
||||
UPG_CORE_SWITCH_MID=" to "
|
||||
UPG_CORE_SWITCH_SUFFIX=" core"
|
||||
UPG_CORE_SWITCH_WARN="Geo DB and yaml/json configs are not compatible between the two cores"
|
||||
UPG_CORE_SWITCH_KEEP="Keep related database files?"
|
||||
UPG_KEEP="Keep"
|
||||
UPG_NOT_KEEP="Do not keep"
|
||||
68
scripts/lang/en/bot_tg.lang
Normal file
68
scripts/lang/en/bot_tg.lang
Normal file
@@ -0,0 +1,68 @@
|
||||
BOT_TG_PRIVATE_HINT="Please apply for a Telegram bot via \033[32;4mhttps://t.me/BotFather\033[0m and get its \033[36mAPI TOKEN\033[0m first"
|
||||
BOT_TG_INPUT_TOKEN="Please enter your API TOKEN"
|
||||
BOT_TG_PRIVATE_TOP="Please send to \033[32myour bot\033[33m, NOT BotFather!\033[0m"
|
||||
BOT_TG_PUBLIC_HINT="Please message the bot: \033[32;4mhttps://t.me/ShellCrashtg_bot\033[0m"
|
||||
BOT_TG_SET_DONE="Telegram log push has been configured!"
|
||||
BOT_TG_CHATID_RETRY_PREFIX="Attempt"
|
||||
BOT_TG_CHATID_RETRY_SUFFIX="to get chat ID failed, retrying..."
|
||||
BOT_TG_SEND_KEY="Send this key:"
|
||||
BOT_TG_SENT_CONFIRM="I have sent it"
|
||||
BOT_TG_CHATID_FAIL="Unable to get chat ID. Please reconfigure or input ChatID manually!"
|
||||
BOT_TG_CHATID_MANUAL_HINT="Usually visit"
|
||||
BOT_TG_CHATID_MANUAL_HINT2="to find ChatID"
|
||||
BOT_TG_INPUT_CHATID="Please input ChatID manually"
|
||||
BOT_TG_CHATID_RECONFIG="Unable to get chat ID. Please reconfigure!"
|
||||
BOT_TG_CRON_NAME="TG_BOT watchdog"
|
||||
|
||||
BOT_TG_HELP_GROUP="Group chat:"
|
||||
BOT_TG_HELP_PROJECT="Project:"
|
||||
BOT_TG_HELP_GUIDE="Guide:"
|
||||
BOT_TG_HELP_COFFEE="Buy me a coffee:"
|
||||
BOT_TG_HELP_AIRPORT="Partner provider:"
|
||||
BOT_TG_RUN_ON="🟢Running"
|
||||
BOT_TG_RUN_OFF="🟡Stopped"
|
||||
BOT_TG_WELCOME="Welcome to ShellCrash!"
|
||||
BOT_TG_SERVICE=" service "
|
||||
BOT_TG_MEM_USED="Memory usage: "
|
||||
BOT_TG_RUNNING_TIME="Running: "
|
||||
BOT_TG_SELECT_ACTION="Please choose:"
|
||||
BOT_TG_SELECT_FILE="Please choose file upload/download action:"
|
||||
BOT_TG_BTN_START="✈️ Enable redirect"
|
||||
BOT_TG_BTN_PURE="💧 Pure mode"
|
||||
BOT_TG_BTN_RESTART="🕹 Restart service"
|
||||
BOT_TG_BTN_LOG="📄 View logs"
|
||||
BOT_TG_BTN_TRANSFER="🔃 File transfer"
|
||||
BOT_TG_BTN_GET_LOG="📥 Download log"
|
||||
BOT_TG_BTN_GET_BAK="💾 Backup settings"
|
||||
BOT_TG_BTN_GET_CFG="⬇️ Download config"
|
||||
BOT_TG_BTN_UP_CORE="🪐 Upload core"
|
||||
BOT_TG_BTN_UP_BAK="🔄 Restore settings"
|
||||
BOT_TG_BTN_UP_CFG="⬆️ Upload config"
|
||||
BOT_TG_NO_CURL="⚠️ curl is missing on this device, only upload is supported!"
|
||||
BOT_TG_UPLOAD_OK="success! Service will restart soon!"
|
||||
BOT_TG_UPLOAD_FAIL="failed, please check file and retry!"
|
||||
BOT_TG_CORE_UPDATE="Core update "
|
||||
BOT_TG_CFG_RESTORED="Config restored, please restart service manually!"
|
||||
BOT_TG_RESTORE_FAIL="Restore failed while extracting backup, please retry!"
|
||||
BOT_TG_CFG_UPLOADED="Config uploaded, please restart service manually!"
|
||||
BOT_TG_UPLOAD_FAIL2="Upload failed, please retry!"
|
||||
BOT_TG_NET_UPLOAD_FAIL="Network error, upload failed! Please retry!"
|
||||
BOT_TG_FILE_FORMAT_FAIL="File format mismatch, upload failed!"
|
||||
BOT_TG_FW_ENABLED="ShellCrash redirect mode "
|
||||
BOT_TG_FW_ENABLED_SUFFIX=" enabled!"
|
||||
BOT_TG_SWITCH_PURE="Switched to pure mode!"
|
||||
BOT_TG_SERVICE_RESTARTED="ShellCrash service restarted!"
|
||||
BOT_TG_UNFINISHED="Error: unfinished feature!"
|
||||
BOT_TG_SEND_CORE="Please send core file ending with tar.gz/.gz/.upx for ["
|
||||
BOT_TG_SEND_CORE_SUFFIX="]"
|
||||
BOT_TG_SEND_BAK="Please send backup file in [.tar.gz] format!"
|
||||
BOT_TG_SEND_CFG="Please send config file in ["
|
||||
BOT_TG_SEND_CFG_SUFFIX="] format, custom config is supported"
|
||||
BOT_TG_SWITCH_TO="Switched to "
|
||||
BOT_TG_ALREADY="Already in "
|
||||
BOT_TG_ALREADY_PURE="Already in pure mode!"
|
||||
BOT_TG_SERVICE_RESTARTED_SHORT="🔄 Service restarted"
|
||||
BOT_TG_LOG_CONTENT="📄 Logs (task logs filtered):"
|
||||
BOT_TG_TASK_WORD="Task"
|
||||
BOT_TG_INPUT_SUB="✏ Please enter new subscription URL:"
|
||||
BOT_TG_SUB_UPDATED="Subscription update finished:"
|
||||
3
scripts/lang/en/check_port.lang
Normal file
3
scripts/lang/en/check_port.lang
Normal file
@@ -0,0 +1,3 @@
|
||||
CHECK_PORT_RANGE_ERR="Invalid input! Please enter a valid value (1-65535)!"
|
||||
CHECK_PORT_DUP_ERR="Invalid input! Please do not enter duplicate ports!"
|
||||
CHECK_PORT_OCCUPIED_ERR="This port is already occupied by another process. Please enter a different one!"
|
||||
35
scripts/lang/en/ddns.lang
Normal file
35
scripts/lang/en/ddns.lang
Normal file
@@ -0,0 +1,35 @@
|
||||
DDNS_WELCOME="Welcome to DDNS!"
|
||||
DDNS_ADD_DONE="Service has been added!"
|
||||
DDNS_INPUT_DOMAIN="Please enter your domain"
|
||||
DDNS_INPUT_USER="Please enter username or email"
|
||||
DDNS_INPUT_PASS="Please enter password or token"
|
||||
DDNS_INPUT_CHECK_INTERVAL="Please enter check interval (minutes, default 10)"
|
||||
DDNS_INPUT_FORCE_INTERVAL="Please enter force update interval (hours, default 24)"
|
||||
DDNS_CONFIRM_INFO="Please confirm the following info:"
|
||||
DDNS_FIELD_SERVICE="Provider:"
|
||||
DDNS_FIELD_DOMAIN="Domain:"
|
||||
DDNS_FIELD_USER="Username:"
|
||||
DDNS_FIELD_INTERVAL="Check interval:"
|
||||
DDNS_CONFIRM_ADD="Confirm add:"
|
||||
DDNS_YES="Yes"
|
||||
DDNS_REINPUT="No, re-enter"
|
||||
DDNS_LIST_NOT_FOUND="DDNS list file not found, trying online update..."
|
||||
DDNS_DOWNLOAD_FAILED="Download failed, please retry!"
|
||||
DDNS_SELECT_PROVIDER="Please select provider:"
|
||||
DDNS_INPUT_ERROR="Invalid input, please retry!"
|
||||
DDNS_SELECT_NETMODE="Please select network mode:"
|
||||
DDNS_IPV4="IPV4"
|
||||
DDNS_IPV6="IPV6"
|
||||
DDNS_DISABLE="Disable"
|
||||
DDNS_ENABLE="Enable"
|
||||
DDNS_UPDATE_NOW="Update now"
|
||||
DDNS_EDIT_CURRENT="Edit current service"
|
||||
DDNS_CURRENT_SERVICE=" current service"
|
||||
DDNS_REMOVE_CURRENT="Remove current service"
|
||||
DDNS_VIEW_LOG="View logs"
|
||||
DDNS_NOT_SUPPORTED="This feature depends on OpenWrt built-in DDNS service; unsupported on current device."
|
||||
DDNS_LIST_HEADER=" List Domain On IP Address"
|
||||
DDNS_ADD_SERVICE="Add DDNS service"
|
||||
DDNS_EXIT="Exit"
|
||||
DDNS_INPUT_INDEX="Please enter index"
|
||||
DDNS_INPUT_NUM_ERROR="Please enter a valid number!"
|
||||
@@ -52,3 +52,34 @@ DNS_IPV6_NOT_SUPPORT="This option does not support IPv6 encrypted DNS!"
|
||||
|
||||
DNS_ENCRYPT_OK="Encrypted DNS has been configured. If DNS issues occur, please reset DNS settings."
|
||||
DNS_CORE_REQUIRE="Please use the Mihomo or SingBox core"
|
||||
DNS_SET_TO="Set to"
|
||||
DNS_PROTECT_NOW="Current status: "
|
||||
DNS_HOSTS_NOW="Current status: "
|
||||
DNS_ENABLED="enabled"
|
||||
DNS_DISABLED="disabled"
|
||||
DNS_PROTECT_DISABLE_Q=" DNS leak protection. Disable now?"
|
||||
DNS_PROTECT_ENABLE_Q=" DNS leak protection. Enable now?"
|
||||
DNS_HOSTS_DISABLE_Q=" Hosts optimization. Disable now?"
|
||||
DNS_HOSTS_ENABLE_Q=" Hosts optimization. Enable now?"
|
||||
DNS_YES="Yes"
|
||||
DNS_RESET_DEFAULT="Reset to defaults"
|
||||
DNS_NO_BACK="No, back"
|
||||
DNS_REMOVE_OK="Removed successfully"
|
||||
DNS_REMOVE_FAIL="Remove failed"
|
||||
DNS_INPUT_REDIR_PORT="Please input bypass-router IPv4 address"
|
||||
DNS_INPUT_REDIR_RESET="or input r to reset DNS redirect port"
|
||||
DNS_INPUT_REDIR_BACK="or input 0 to go back"
|
||||
DNS_INPUT="Please enter"
|
||||
DNS_CONFIRM_ADD="Please confirm the address to add: "
|
||||
DNS_CONFIRM_OK="Confirm"
|
||||
DNS_ADD_OK="Added successfully"
|
||||
DNS_ADD_FAIL="Add failed"
|
||||
DNS_DIRECT_NOW="Current DIRECT-DNS: "
|
||||
DNS_PROXY_NOW="Current PROXY-DNS: "
|
||||
DNS_DEFAULT_NOW="Current DEFAULT-DNS: "
|
||||
DNS_INPUT_DIRECT_NEW="Please input new DIRECT-DNS"
|
||||
DNS_INPUT_DIRECT_RESET="or input r to reset DIRECT-DNS"
|
||||
DNS_INPUT_PROXY_NEW="Please input new PROXY-DNS"
|
||||
DNS_INPUT_PROXY_RESET="or input r to reset PROXY-DNS"
|
||||
DNS_INPUT_DEFAULT_NEW="Please input new DEFAULT-DNS"
|
||||
DNS_INPUT_DEFAULT_RESET="or input r to reset DEFAULT-DNS"
|
||||
|
||||
25
scripts/lang/en/providers.lang
Normal file
25
scripts/lang/en/providers.lang
Normal file
@@ -0,0 +1,25 @@
|
||||
PROVIDERS_MENU_GEN="Generate config including all providers"
|
||||
PROVIDERS_MENU_TEMPLATE="Select \033[33mrule template\033[0m"
|
||||
PROVIDERS_MENU_CLEAN="\033[33mClean\033[0m providers directory"
|
||||
PROVIDERS_INPUT="Please enter a letter or number"
|
||||
|
||||
PROVIDERS_EMPTY_HINT="No link or local config file has been added yet. Please add one first!"
|
||||
PROVIDERS_TEMPLATE_CURRENT="Current rule template: "
|
||||
PROVIDERS_TEMPLATE_SELECT="Please select an online template:"
|
||||
PROVIDERS_TEMPLATE_LOCAL="Use \033[36mlocal template\033[0m"
|
||||
PROVIDERS_TEMPLATE_PATH="Please enter template path (absolute path)"
|
||||
PROVIDERS_TEMPLATE_NOT_FOUND="Invalid input, template file not found!"
|
||||
|
||||
PROVIDERS_CLEAN_WARN="This will clear all files under"
|
||||
PROVIDERS_CLEAN_WARN_END=""
|
||||
PROVIDERS_CLEAN_CONFIRM="Continue?"
|
||||
|
||||
PROVIDERS_FETCHING_TEMPLATE="Fetching online template..."
|
||||
PROVIDERS_DOWNLOAD_FAILED="Download failed. Please try switching install source!"
|
||||
PROVIDERS_GEN_OK="Configuration file generated successfully!"
|
||||
PROVIDERS_GEN_OK_SINGBOX="Configuration generated successfully! If startup times out, install the Singbox-srs common database package from Update menu."
|
||||
PROVIDERS_GEN_FAILED="Failed to generate configuration file. Please check your input carefully!"
|
||||
PROVIDERS_RESTART_ASK="Start/Restart service now?"
|
||||
PROVIDERS_YES="Yes"
|
||||
PROVIDERS_NO="No"
|
||||
PROVIDERS_CRON_SUB_UPDATE="Update subscription"
|
||||
34
scripts/lang/en/set_crashdir.lang
Normal file
34
scripts/lang/en/set_crashdir.lang
Normal file
@@ -0,0 +1,34 @@
|
||||
SCD_SELECT_INSTALL_DIR="Please select install directory:"
|
||||
SCD_INPUT_NUM="Please enter a number"
|
||||
SCD_INPUT_ERROR="Invalid input! Please retry!"
|
||||
SCD_XIAOMI_DETECTED="Xiaomi stock firmware detected, select installation location:"
|
||||
SCD_CUSTOM_DIR_WARN="Custom directory (not recommended)"
|
||||
SCD_EXIT_INSTALL="Exit installation"
|
||||
SCD_SELECT_USB_DIR="Please select USB directory:"
|
||||
SCD_ASUS_DM_NOT_FOUND="Download Master startup file not found:"
|
||||
SCD_CHECK_SETTING="please check your settings!"
|
||||
SCD_ASUS_DETECTED="Asus firmware detected, please select installation method"
|
||||
SCD_ASUS_INSTALL_DM="Install via USB + Download Master (all firmwares, ARM only)"
|
||||
SCD_ASUS_INSTALL_SCRIPT="Install via startup script (some Merlin firmwares only)"
|
||||
SCD_ASUS_DM_HINT="Install and enable Download Master in router web UI first, then select external storage directory."
|
||||
SCD_ASUS_REINSTALL_HINT="If boot auto-start fails, please reinstall with USB + Download Master."
|
||||
SCD_PATH_FORMAT_HINT="Path must start with /. Files under virtual memory (/tmp,/opt,/sys...) will be lost after reboot!"
|
||||
SCD_PATH_FREE_SPACE="Available paths free space:"
|
||||
SCD_INPUT_CUSTOM_DIR="Please input custom path"
|
||||
SCD_PATH_ERROR="Invalid path! Please retry!"
|
||||
SCD_INSTALL_SPACE_HINT="Notice: ShellCrash requires at least ~1MB free space"
|
||||
SCD_INSTALL_ETC="Install in \033[32m/etc\033[0m (root users)"
|
||||
SCD_INSTALL_USR="Install in \033[32m/usr/share\033[0m (Linux systems)"
|
||||
SCD_INSTALL_HOME="Install in \033[32mcurrent user dir\033[0m (non-root users)"
|
||||
SCD_INSTALL_USB="Install in \033[32mexternal storage\033[0m"
|
||||
SCD_INSTALL_MANUAL="Set install directory manually"
|
||||
SCD_INSTALL_CANCELED="Installation canceled"
|
||||
SCD_NO_WRITE_PREFIX="No write permission on "
|
||||
SCD_NO_WRITE_SUFFIX=", please retry!"
|
||||
SCD_TARGET_DIR_PREFIX="Target directory "
|
||||
SCD_TARGET_DIR_SPACE=" free space: "
|
||||
SCD_CONFIRM_INSTALL="Confirm installation?"
|
||||
SCD_YES="Yes"
|
||||
SCD_NO="No"
|
||||
SCD_DIR_FREE=" dir, free: "
|
||||
SCD_SOFT_SOLID="(supports soft solidification)"
|
||||
52
scripts/lang/en/setboot.lang
Normal file
52
scripts/lang/en/setboot.lang
Normal file
@@ -0,0 +1,52 @@
|
||||
SETBOOT_NOT_SET="Not set"
|
||||
SETBOOT_SECOND="s"
|
||||
SETBOOT_TITLE="Startup Settings"
|
||||
SETBOOT_ITEM_AUTO="Autostart:"
|
||||
SETBOOT_ITEM_OLD="Conservative mode:"
|
||||
SETBOOT_ITEM_OLD_DESC="--- cron based check (every minute)"
|
||||
SETBOOT_ITEM_DELAY="Startup delay:"
|
||||
SETBOOT_ITEM_DELAY_DESC="--- helps when service is restricted right after boot"
|
||||
SETBOOT_ITEM_MINI="Low-flash mode:"
|
||||
SETBOOT_ITEM_MINI_DESC="--- for devices with limited flash space"
|
||||
SETBOOT_ITEM_MINI_DIR="Low-flash directory:"
|
||||
SETBOOT_ITEM_NETCHK="Startup network check:"
|
||||
SETBOOT_ITEM_NETCHK_DESC="--- disable to skip network check on startup"
|
||||
SETBOOT_VIEW_LOG="View startup logs"
|
||||
SETBOOT_AUTO_OFF="ShellCrash autostart disabled!"
|
||||
SETBOOT_AUTO_ON="ShellCrash autostart enabled!"
|
||||
SETBOOT_CRON_INIT="ShellCrash initialization"
|
||||
SETBOOT_OLDMODE_ON="Switched to conservative startup mode!"
|
||||
SETBOOT_OLDMODE_OFF="Switched to system daemon startup mode!"
|
||||
SETBOOT_MODE_UNSUPPORTED="Current device does not support other startup modes!"
|
||||
SETBOOT_DELAY_HINT1="If your device runs normally after boot, no need to configure this."
|
||||
SETBOOT_DELAY_HINT2="Recommended between 30~120 seconds, tune according to your device issue."
|
||||
SETBOOT_DELAY_INPUT="Please enter startup delay (0~300s)"
|
||||
SETBOOT_SET_OK="Set successfully!"
|
||||
SETBOOT_DELAY_INVALID="Invalid input or over 300s, please retry!"
|
||||
SETBOOT_MINI_NEEDED_NO="Your device has enough space (>20M), no need to enable!"
|
||||
SETBOOT_SYSTEMD_WARN="systemd startup is unsupported here, enable conservative mode first!"
|
||||
SETBOOT_MINI_ENABLED="Low-flash mode has been enabled!"
|
||||
SETBOOT_MINI_DIR_HINT="To change directory, use [Set low-flash directory]."
|
||||
SETBOOT_MINI_DISABLE_WARN="Remaining space is below 8M; disabling may break runtime!"
|
||||
SETBOOT_MINI_DISABLE_CONFIRM="Confirm disabling this feature?"
|
||||
SETBOOT_YES="Yes"
|
||||
SETBOOT_NO_BACK="No, return"
|
||||
SETBOOT_MINI_DISABLED="Low-flash mode has been disabled!"
|
||||
SETBOOT_BINDIR_HINT1="If set to memory, related files will be re-downloaded after each boot."
|
||||
SETBOOT_BINDIR_HINT2="Ensure install source is directly reachable, or startup may fail."
|
||||
SETBOOT_BINDIR_TMP="Use memory (/tmp)"
|
||||
SETBOOT_BINDIR_USB="Select USB directory"
|
||||
SETBOOT_BINDIR_CUSTOM="Custom directory"
|
||||
SETBOOT_SELECT_INSTALL_DIR="Please select install directory:"
|
||||
SETBOOT_SPACE_USED="Used storage:"
|
||||
SETBOOT_INPUT_ERROR="Invalid input, please retry!"
|
||||
SETBOOT_INPUT_CMD="Please input command/path directly"
|
||||
SETBOOT_INPUT_OR_BACK="Or input 0 to return"
|
||||
SETBOOT_INPUT="Please enter"
|
||||
SETBOOT_NETCHK_HINT1="If your device can run normally after boot, no need to change this."
|
||||
SETBOOT_NETCHK_HINT2="When disabled, low-flash or online rules (e.g. rule-set) may fail due to no network."
|
||||
SETBOOT_NETCHK_HINT3="When enabled, low-performance/slow-dial devices may timeout and fail startup."
|
||||
SETBOOT_NETCHK_OFF_CONFIRM="Network check is \033[33mdisabled\033[0m. Enable it?"
|
||||
SETBOOT_NETCHK_ON_CONFIRM="Network check is \033[33menabled\033[0m. Disable it?"
|
||||
SETBOOT_TASK_WORD="Task"
|
||||
SETBOOT_LOG_NOT_FOUND="Related log not found!"
|
||||
33
scripts/lang/en/subconverter.lang
Normal file
33
scripts/lang/en/subconverter.lang
Normal file
@@ -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"
|
||||
19
scripts/lang/en/task_cmd.lang
Normal file
19
scripts/lang/en/task_cmd.lang
Normal file
@@ -0,0 +1,19 @@
|
||||
TASK_CMD_EVERY="every"
|
||||
TASK_CMD_HOURLY="hourly"
|
||||
TASK_CMD_MIN="minute"
|
||||
TASK_CMD_CORE_SKIP="Task [Auto update core] skipped - no new version detected"
|
||||
TASK_CMD_CORE_DONE="Task [Auto update core] download complete, restarting service"
|
||||
TASK_CMD_CORE_DL_FAIL="Task [Auto update core] failed - download error"
|
||||
TASK_CMD_CORE_VERIFY_FAIL="Task [Auto update core] failed - core verification error"
|
||||
TASK_CMD_SCRIPT_SKIP="Task [Auto update script] skipped - no new version detected"
|
||||
TASK_CMD_SCRIPT_UNZIP_FAIL="Task [Auto update script] failed - extract error"
|
||||
TASK_CMD_DB_SKIP_PREFIX="Task [Auto update database] skipped - no new version for "
|
||||
TASK_CMD_DB_SKIP_SUFFIX=""
|
||||
TASK_CMD_DB_DL_FAIL_PREFIX="Task [Auto update database] failed downloading ["
|
||||
TASK_CMD_DB_DL_FAIL_SUFFIX="]"
|
||||
TASK_CMD_DB_OK_PREFIX="Task [Auto update database] updated ["
|
||||
TASK_CMD_DB_OK_SUFFIX="] successfully"
|
||||
TASK_CMD_RES_OK="success"
|
||||
TASK_CMD_RES_FAIL="failed"
|
||||
TASK_CMD_EXEC_PREFIX="Task ["
|
||||
TASK_CMD_EXEC_MID="] result: "
|
||||
13
scripts/lang/en/uninstall.lang
Normal file
13
scripts/lang/en/uninstall.lang
Normal file
@@ -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"
|
||||
@@ -12,3 +12,6 @@ UG_IMPORT_CONFIG="Import configuration file? (Last step before running)"
|
||||
UG_CONFIG_TIP="You must have a configuration file to run the service!"
|
||||
UG_CONFIG_RES="Importing now? "
|
||||
UG_FINAL_TIP="Great! Now just start the service to enjoy!"
|
||||
|
||||
UG_IMPORT_NOW="Import now"
|
||||
UG_IMPORT_LATER="Not now"
|
||||
|
||||
Reference in New Issue
Block a user