{
  "pages": {
    "Device": {
      "localPort": "Local port",
      "status": "Status",
      "shutdown": {
        "title": "Warning",
        "content": "Are you sure to turn off the Scrcpy control service?",
        "positiveText": "Confirm",
        "negativeText": "Cancel"
      },
      "menu": {
        "control": "Control this device",
        "screen": "Get screen size"
      },
      "deviceControl": {
        "closeCurDevice": "Please close the current control device first",
        "controlInfo": "The control service is starting. Please keep the device screen on.",
        "connectTimeout": "Device connection timeout"
      },
      "deviceGetScreenSize": "Device screen size: ",
      "inputWirelessAddress": "Please enter the wireless debugging address",
      "localPortPlaceholder": "Scrcpy local port",
      "wireless": "Wireless connection",
      "wirelessPlaceholder": "Wireless connection address",
      "connect": "Connect",
      "deviceSize": {},
      "controledDevice": "Controlled device",
      "availableDevice": "Available devices",
      "noControledDevice": "No Controled Device",
      "alreadyControled": "Controlled device already exists",
      "alreadyDisconnected": "Controlled device connection has been disconnected",
      "externalControl": "External control",
      "wsAddress": "Websocket address",
      "inputWsAddress": "Please enter the Websocket address",
      "wsClose": "Close",
      "wsConnect": "Control",
      "adbDeviceError": "Unable to get available devices",
      "adbConnectError": "Wireless connection failed",
      "deviceRotation": "Device rotation"
    },
    "Mask": {
      "inputBoxPlaceholder": "Input text and then press enter/esc",
      "keyconfigException": "The key mapping config is abnormal, please delete this config",
      "blankConfig": "Blank config",
      "checkUpdate": {
        "failed": "Check for updates failed",
        "isLatest": "Latest version: {0}, currently the latest version: {1}",
        "notLatest": {
          "title": "Latest version: {0}",
          "positiveText": "Release page",
          "negativeText": "Cancel"
        }
      },
      "noControledDevice": {
        "title": "Controlled device not found",
        "content": "Please go to the device page to control any device",
        "positiveText": "To control"
      },
      "sightMode": "Mouse is locked, press {0} to unlock",
      "checkAdb": "adb is not available and the software cannot run normally. Please ensure that adb is installed on the system and added to the Path environment variable correctly: {0}",
      "keyInputMode": "Has entered the keystroke input mode, close this message to exit."
    },
    "Setting": {
      "tabs": {
        "basic": "Basic settings",
        "mask": "Mask setting",
        "about": "About"
      },
      "Mask": {
        "areaFormMissing": {
          "x": "Enter the X coordinate of the mask upper left corner",
          "y": "Enter the Y coordinate of the mask upper left corner",
          "w": "Enter mask width",
          "h": "Enter the mask height"
        },
        "areaSaved": "Mask area saved",
        "incorrectArea": "Please enter the coordinates and size of the mask correctly",
        "buttonPrompts": "Button prompts",
        "ifButtonPrompts": "Whether to display",
        "opacity": "Opacity",
        "areaAdjust": "Mask adjustment",
        "areaPlaceholder": {
          "x": "X coordinate of upper left corner"
        },
        "areaFormPlaceholder": {
          "y": "Y coordinate of upper left corner",
          "w": "Mask width",
          "h": "Mask height"
        },
        "areaTip": "Tip: The mask size and device size will be used for coordinate conversion, please ensure the accuracy of the size"
      },
      "Basic": {
        "delLocalStore": {
          "dialog": {
            "title": "Warning",
            "delKey": "Data \"{0}\" is about to be deleted. The deletion operation is irreversible. Do you want to continue?",
            "positiveText": "Delete",
            "negativeText": "Cancel",
            "delAll": "The data is about to be cleared. The operation is irreversible and the software will be restarted after clearing. Do you want to continue?"
          },
          "warning": "Deleting data may lead to unpredictable consequences, so please operate with caution. \nIf an exception occurs, please try clearing the data and restarting the software."
        },
        "language": "Language",
        "localStore": "Local data",
        "delCurData": "Delete current data",
        "adbPath": {
          "placeholder": "adb path",
          "set": "Save",
          "setSuccess": "adb path set successfully",
          "title": "adb path"
        }
      },
      "About": {
        "introduction": "A Scrcpy client in Rust & Tarui aimed at providing mouse and key mapping to control Android device.",
        "github": "Github repo",
        "blog": "AkiChase's Blog",
        "about": "About",
        "update": "Update",
        "checkUpdateOnStartup": "Check for software updates on startup",
        "curVersion": "Current version: {0}",
        "checkUpdate": "Check for updates"
      }
    },
    "KeyBoard": {
      "noSaveDialog": {
        "title": "Warning",
        "content": "The current plan has not been saved. Do you want to save it?",
        "positiveText": "Save",
        "negativeText": "Cancel",
        "keyRepeat": "There are duplicate keystrokes and cannot be saved."
      },
      "addButton": {
        "SteeringWheel": "SteeringWheel",
        "Tap": "Tap",
        "Skill": "Skill",
        "CancelSkill": "CancelSkill",
        "Observation": "Observation",
        "Macro": "Macro",
        "Sight": "Front sight",
        "Fire": "Fire",
        "existFire": "Fire button already exists",
        "existSight": "Front sight button already exists"
      },
      "buttonKeyRepeat": "Key repeat: {0}",
      "KeyCommon": {
        "macroParseSuccess": "The macro code is parsed successfully, but the correctness of the code is not guaranteed. Please test by yourself.",
        "macroParseFailed": "Macro code failed to save, please check whether the code format is correct.",
        "editMacro": "Edit macro",
        "macroModal": {
          "title": "Macro editor",
          "down": "Macro executed on key press",
          "placeholder": "JSON macro code, can be empty",
          "loop": "Macro executed on key press and hold",
          "up": "Macro executed on key up"
        },
        "macroCode": "Macro code",
        "cancelSkill": "CancelSkill",
        "tap": "Tap",
        "macro": "Macro"
      },
      "setting": {
        "touchTime": "Touch duration",
        "touchTimePlaceholder": "Touch duration (ms)",
        "pointerID": "Pointer ID",
        "pointerIDPlaceholder": "Please enter Pointer ID",
        "note": "Note",
        "notePlaceholder": "Please enter note"
      },
      "KeyInfo": {
        "title": "按键信息",
        "note": "按下任意键"
      },
      "Observation": {
        "observation": "Observation",
        "scale": "Sensitivity",
        "scalePlaceholder": "Please enter sensitivity"
      },
      "KeySetting": {
        "onlyOneConfig": "There is currently only one config. Click Import Default to import the preset configs.",
        "importFailed": "Import failed",
        "importSuccess": "Key config has been imported",
        "importDefaultFailed": "Import of default key config failed",
        "importDefaultSuccess": "{0} default configs have been imported",
        "configEdited": "Please save or reset the current config first",
        "newConfig": "New Config",
        "newConfigSuccess": "New config has been created",
        "copyConfigTitle": "{0}-Copy",
        "copyConfigSuccess": "The config has been copied as: {0}",
        "delConfigLeast": "Keep at least one config",
        "delSuccess": "Config deleted: {0}",
        "renameSuccess": "Config has been renamed: {0}",
        "renameEmpty": "Config name cannot be empty",
        "exportSuccess": "The current key config has been exported to the clipboard",
        "exportFailed": "Key config export failed",
        "saveKeyRepeat": "There are duplicate key and cannot be saved.",
        "checkConfigSizeWarning": "Please note that the current key config \"{0}\" is inconsistent with the mask size. You can migrate it if necessary.",
        "migrateConfigTitle": "{0}-Migrate",
        "migrateConfigSuccess": "Migrated to new config: {0}",
        "migrateConfigNeedless": "The current config conforms to the mask size and does not need to be migrated",
        "buttonDrag": "Long press to drag",
        "config": "Key mapping config",
        "configRelativeSize": "Relative Mask Size: {0}x{1}",
        "saveConfig": "Save config",
        "resetConfig": "Reset config",
        "renameConfig": "Rename",
        "renameTitle": "Rename key config",
        "import": "import",
        "importPlaceholder": "Paste the JSON text of a key mapping config (the legality of the key mapping config cannot be judged here, please ensure that the JSON content is correct)",
        "addButtonTip": "Tip: Right-click on the blank area to add buttons",
        "keyInfo": "Key Info",
        "importDefaultConfig": "Import default",
        "exportConfig": "Export config",
        "importConfig": "Import config",
        "others": "Others",
        "delConfig": "Delete config",
        "migrateConfig": "Migration config",
        "copyConfig": "Copy config",
        "createConfig": "Create config"
      },
      "KeySkill": {
        "skill": "Skill",
        "options": "Options",
        "double": "Double click to cast",
        "directionless": "Directionless skills",
        "triggerWhenPressed": "Trigger when pressed",
        "range": "Range"
      },
      "SteeringWheel": {
        "steeringWheel": "SteeringWheel",
        "offset": "Offset"
      },
      "KeySight": {
        "sight": "Front sight",
        "scaleX": "Horizontal sensitivity",
        "scalePlaceholder": "Please enter sensitivity",
        "scaleY": "Vertical sensitivity"
      },
      "KeyFire": {
        "fire": "Fire",
        "drag": "Drag to cast",
        "scaleX": "Horizontal sensitivity",
        "scalePlaceholder": "Please enter sensitivity",
        "scaleY": "Vertical sensitivity"
      }
    }
  },
  "sidebar": {
    "noControledDevice": "No devices are controlled"
  },
  "websocket": {
    "open": "Connected to external control server",
    "close": "External control connection disconnected",
    "error": "Something was wrong, the exter connection is closed"
  }
}
