/* App & login */
"app.name" = "WatchFlash Tools";
"login.tagline" = "登录后可使用刷机与固件相关功能。";
"login.username" = "用户名";
"login.username.placeholder" = "请输入用户名";
"login.password" = "密码";
"login.password.placeholder" = "请输入密码";
"login.remember" = "记住账号密码";
"login.logging_in" = "登录中…";
"login.button" = "登录";
"login.username_required" = "请输入用户名。";

/* Register */
"register.tagline" = "注册账号以使用刷机与固件相关功能。";
"register.username" = "账号";
"register.username.placeholder" = "请输入账号";
"register.username.hint" = "请使用手机号或邮箱注册";
"register.password" = "密码";
"register.password.placeholder" = "请输入密码";
"register.verification_code" = "验证码";
"register.verification_code.placeholder" = "请输入 6 位数字验证码";
"register.send_code" = "获取验证码";
"register.send_code.cooldown_format" = "%d秒";
"register.entry" = "注册账号";
"register.button" = "注册帐号";
"register.submitting" = "注册中…";
"register.username_required" = "请输入手机号或邮箱。";
"register.username_invalid_format" = "账号格式错误，请输入手机号或邮箱。";
"register.password_required" = "请输入密码（至少6位）。";
"register.code_required" = "请输入验证码（6位数字）。";
"auth.back_to_login" = "返回登录";

/* Reset password */
"reset_password.entry" = "找回密码";
"reset_password.tagline" = "使用验证码重置密码。";
"reset_password.username" = "账号";
"reset_password.username.placeholder" = "请输入手机号或邮箱";
"reset_password.new_password" = "新密码";
"reset_password.new_password.placeholder" = "请输入新密码";
"reset_password.verification_code" = "验证码";
"reset_password.verification_code.placeholder" = "请输入 6 位数字验证码";
"reset_password.send_code" = "获取验证码";
"reset_password.button" = "重置密码";
"reset_password.submitting" = "提交中…";
"reset_password.username_required" = "请输入手机号或邮箱。";
"reset_password.username_invalid_format" = "账号格式错误，请输入手机号或邮箱。";
"reset_password.new_password_required" = "请输入新密码（至少6位）。";
"reset_password.code_required" = "请输入验证码（6位数字）。";
"reset_password.success_hint" = "密码已重置，请使用新密码登录。";

/* Language picker */
"language.picker.label" = "语言";
"language.name.en" = "English";
"language.name.zh_hans" = "简体中文";

/* Auth errors */
"auth.error.invalid_url" = "服务器地址无效。";
"auth.error.invalid_response" = "服务器响应无效。";
"auth.error.decoding_failed" = "无法解析服务器返回数据。";
"auth.error.http_status" = "登录失败（HTTP %d）。";
"auth.error.client_version_mismatch" = "客户端版本过低或与服务器要求不一致，请下载最新版本后重试。";
"auth.version_mismatch.download_label" = "最新版下载地址";
"auth.version_mismatch.copy_link" = "复制链接";
"auth.version_mismatch.copied" = "已复制";
"auth.session_expired" = "登录已失效，请重新登录。";

/* Device state */
"device.state.disconnected" = "未连接";
"device.state.connecting" = "连接中";
"device.state.connected" = "已连接";
"device.state.recovery" = "恢复模式";
"device.state.dfu" = "DFU 模式";

/* Common */
"common.unknown" = "未知";
"common.not_available" = "无";
"common.placeholder_dash" = "—";

/* Sidebar */
"sidebar.section.device" = "设备";
"sidebar.account.username_unknown" = "未知用户";
"sidebar.balance.points_format" = "余额点数：%d";
"sidebar.button.recharge" = "点数充值";
"sidebar.button.ledger" = "查看流水";
"sidebar.placeholder.not_implemented_title" = "功能待完善";
"sidebar.placeholder.not_implemented_message" = "该功能后续会补全。";

/* Point card redeem */
"pointcard.title" = "点数充值";
"pointcard.back" = "返回";
"pointcard.hint" = "请输入点卡号（18位字母与数字）与密码（8位数字）。兑换成功后余额将立即更新。";
"pointcard.refund_notice" = "充值成功后概不退款，请根据实际使用量合理充值。";
"pointcard.field.card_no" = "点卡号";
"pointcard.field.card_no.placeholder" = "18 位卡号";
"pointcard.field.password" = "密码";
"pointcard.field.password.placeholder" = "8 位数字（1–9）";
"pointcard.submit" = "兑换";
"pointcard.submitting" = "兑换中…";
"pointcard.success.credited_format" = "已入账 %1$d 点，当前余额 %2$d 点。";
"pointcard.success.already_redeemed" = "该点卡此前已兑换，本次未重复入账。当前余额已刷新。";
"pointcard.error.expired" = "该点卡已过期，无法兑换。";
"sidebar.refresh_catalog" = "刷新机型与固件列表";
"sidebar.loading" = "加载中…";
"sidebar.section.models" = "机型";
"sidebar.no_models" = "暂无机型数据";
"sidebar.firmware_section_format" = "固件（%@）";
"sidebar.no_firmware" = "该机型暂无固件";

/* Firmware row */
"firmware.status.imported" = "已导入";
"firmware.status.not_imported" = "未导入";
"firmware.action.select" = "选用";
"firmware.action.remove" = "删除";
"firmware.action.import" = "导入";
"firmware.action.download" = "下载";

/* CDN firmware download */
"firmware.download.help" = "从服务端配置的 CDN 直链下载该固件并自动完成导入。";
"firmware.download.busy" = "已有其他固件正在下载，请等待完成后再试。";
"firmware.download.no_url" = "该固件未配置 CDN 下载地址。";
"firmware.download.started_format" = "已开始从 CDN 下载：%@";
"firmware.download.dir_failed_format" = "无法创建下载目录：%@";
"firmware.download.failed_format" = "CDN 下载失败：%@";
"firmware.download.cancelled" = "已取消 CDN 下载。";
"firmware.download.cancel" = "取消";
"firmware.download.speed_unknown" = "—";
"firmware.download.rate_per_second_format" = "%@/秒";
"firmware.download.status_known_total_format" = "%1$@ / %2$@ · %3$@";
"firmware.download.status_unknown_total_format" = "%1$@ · %2$@";

/* Import panel */
"panel.import_firmware.title" = "导入固件";
"panel.import_firmware.message" = "展示名称：%1$@。请选择文件名为「%2$@」的固件（须与接口 encrypted_file_path 最后一段一致）。";

/* Detail cards */
"detail.connection_status" = "连接状态";
"detail.current_firmware_format" = "当前固件：%@";
"detail.status.disconnected_label" = "未连接设备";
"detail.status.operable" = "可操作";
"detail.status.inoperable" = "不可操作";
"detail.basic_info" = "基本信息";
"detail.log" = "日志";
"detail.flashing" = "刷机进行中";
"detail.verbose_flash_log" = "详细刷机日志";
"detail.verbose_flash_log.help" = "在日志中显示恢复引擎的信息级与详细级输出。";
"detail.field.model" = "设备型号";
"detail.field.ios" = "系统版本";
"detail.field.ecid" = "ECID";
"detail.field.udid" = "UDID";
"detail.field.serial" = "序列号";
"detail.value.em_dash" = "—";

/* Toolbar */
"toolbar.redetect" = "重新检测";
"toolbar.refresh_info" = "刷新信息";
"toolbar.exit_recovery" = "退出恢复模式";
"toolbar.enter_recovery" = "进入恢复";
"toolbar.start_flash" = "开始刷机";
"toolbar.logout" = "退出登录";
"toolbar.clear_log" = "清空日志";
"toolbar.reboot" = "重启设备";

/* Activity logs */
"log.welcome.line1" = "欢迎使用 WatchFlash Tools。";
"log.welcome.line2" = "连接或断开设备将自动识别；从左侧导入并选用固件后可开始刷机。";
"log.firmware_selected_format" = "已选用刷机固件：%@";
"log.connected_device_format" = "已连接设备：%1$@ %2$@";
"log.recovery_mode_suffix" = "（恢复模式）";
"log.device_disconnected" = "设备已断开连接。";
"log.refreshing_device" = "正在刷新设备信息…";
"log.device_disconnected_reconnect" = "设备已断开连接，请重新连接设备。";
"log.refresh_done" = "刷新完成。";
"log.entering_recovery" = "正在让设备进入恢复模式…";
"log.enter_recovery_failed_format" = "进入恢复模式失败：%@";
"log.device_entered_recovery" = "设备已进入恢复模式，将自动重新识别。";
"log.exiting_recovery" = "正在退出恢复模式…";
"log.exit_recovery_failed_format" = "退出恢复模式失败：%@";
"log.reboot_sent" = "已发送重启，设备将自动重新识别。";
"log.rebooting" = "正在重启设备…";
"log.reboot_failed_format" = "重启设备失败：%@";
"log.device_rebooted" = "设备已重启。";
"log.no_ipsw" = "未选择 IPSW，无法开始刷机。";
"log.no_device" = "未检测到设备，无法开始刷机。";
"log.flash_started" = "开始刷机…";
"log.normal_then_recovery" = "设备为正常模式，正在令其进入恢复模式…";
"log.enter_recovery_failed_retry" = "进入恢复模式失败，请重试。";
"log.waiting_recovery_after_reboot" = "设备重启中，等待识别恢复模式…";
"log.recovery_device_fallback_name" = "恢复模式设备";
"log.recovery_identified" = "已识别恢复模式设备，开始刷机。";
"log.recovery_wait_timeout" = "未在时限内检测到恢复模式设备，请确认设备已连接并重试。";
"log.flash_missing_firmware_id" = "无法刷机：未记录固件 ID，请重新在侧栏对该固件点「选用」。";
"log.flash_missing_device_model_id" = "无法刷机：未记录机型 ID，请重新在侧栏对该固件点「选用」。";
"log.flash_missing_ecid" = "无法刷机：当前设备无有效 ECID（请处于恢复/DFU 模式并重新检测）。";
"log.flash_fatal_format" = "刷机流程已中止：%@";
"log.flash_not_logged_in" = "无法刷机：未登录或登录已失效，请先登录。";
"log.session_expired_relogin" = "登录已失效，请重新登录。";
"log.fetch_payload_failed_format" = "拉取剔除文件 payload 失败：%@";
"log.flash_complete" = "刷机完成。";
"log.flash_failed_format" = "刷机失败：%@";
"log.flash_watchdog_usb_missing" = "刷机过程中未检测到 USB 连接设备（已持续一段时间），判定为异常断开。";
"log.flash_watchdog_stall" = "刷机长时间未收到进度更新，判定为异常中断。";
"log.unknown_error" = "未知错误";
"log.import_removed_format" = "已移除导入记录：%@";
"log.import_failed_format" = "导入失败：%@";
"log.import_ok_format" = "已导入固件：%@";
"log.log_cleared" = "日志已清空。";

/* Firmware catalog */
"catalog.error.not_logged_in" = "未登录，无法拉取机型列表。";
"catalog.error.invalid_url" = "服务器地址无效。";
"catalog.error.session_expired" = "登录已失效，请重新登录。";
"catalog.error.load_failed_format" = "加载失败（HTTP %d）%@";
"catalog.import.filename_mismatch_format" = "文件名须与接口中的 encrypted_file_path 一致（应为「%@」）。";
"catalog.import.file_missing" = "所选文件不存在。";

/* Flash billing & credentials */
"flash.charge.confirm_title" = "确认扣费";
"flash.charge.confirm_detail" = "当前无有效刷机凭证。本次将按机型价格扣除 %d 点，是否继续？";
"flash.charge.confirm_detail_with_balance" = "当前无有效刷机凭证。本次将按机型价格扣除 %1$d 点（当前余额 %2$@ 点），是否继续？";
"flash.charge.confirm_extra_notice" = "同一设备累计前五次刷机失败可全额退还点数；从第六次失败起，退还将按规则扣除最多 20 点手续费。刷机过程中请勿断开设备与电脑连接，以免影响失败上报与退款。";
"flash.charge.button_confirm" = "确认扣费";
"flash.charge.button_cancel" = "取消";
"flash.charge.user_cancelled" = "已取消扣费，未开始刷机。";
"flash.charge.submitting" = "正在向服务器确认扣费…";
"flash.charge.success_format" = "扣费成功：扣除 %1$d 点，当前余额 %2$d 点。";
"flash.credential.error.zero_price" = "该机型刷机价格为 0 或未配置，无法扣费。请联系管理员。";
"flash.credential.missing_after_check" = "扣费后仍未获得有效刷机凭证，请稍后重试或联系管理员。";
"flash.credential.ready" = "已具备有效刷机凭证。";
"flash.credential.error.generic_format" = "刷机凭证接口错误：%@";
"flash.alert.title" = "无法开始刷机";
"flash.alert.flow_stopped_title" = "刷机已停止";
"flash.alert.ok" = "好";
"flash.error.firmware_model_mismatch" = "本次刷机固件和扣费的机型不匹配。请选用与已扣费机型一致的固件。";
"flash.failure.reported" = "已向服务器上报刷机失败（将按规则处理退款）。";
"flash.failure.report_failed_format" = "上报刷机失败时出错：%@";
"flash.failure.disconnect_alert.title" = "刷机失败";
"flash.failure.disconnect_alert.message" = "刷机失败，设备断开连接，请重新放置设备，如出现长时间未连接的情况，请尝试拔插设备或者重启电脑解决";
"flash.credential.error.invalid_url" = "服务器地址无效。";
"flash.credential.error.unauthenticated" = "未登录。";
"flash.credential.error.decode" = "无法解析服务器返回数据。";
"flash.credential.error.conflict_still_no_credential" = "服务器返回冲突，但重新校验后仍无有效凭证。";

/* Ledger */
"ledger.title" = "点数流水";
"ledger.back" = "返回";
"ledger.close" = "关闭";
"ledger.loading" = "加载中…";
"ledger.load_more" = "加载更多";
"ledger.none" = "暂无流水记录。";
"ledger.unauthenticated" = "登录已失效，请重新登录。";

/* Excluded payload errors */
"payload.error.invalid_url" = "服务器地址无效。";
"payload.error.bad_http_format" = "请求失败（HTTP %d）。";
"payload.error.bad_json" = "无法解析服务器返回数据。";
"payload.error.missing_field_format" = "响应缺少字段：%@。";
"payload.error.bad_jwt" = "会话 token 无效。";
"payload.error.crypto_failed_format" = "解密失败：%@";

/* RSA bind errors */
"rsa.bind.error.key_create_failed_format" = "RSA 私钥创建失败：%@";
"rsa.bind.error.key_read_failed" = "无法读取本地 RSA 私钥。";
"rsa.bind.error.key_export_failed" = "无法导出本地 RSA 公钥。";
"rsa.bind.error.sign_failed" = "挑战码签名失败。";
"rsa.bind.error.probe_decrypt_failed" = "该客户端使用的证书与服务器不匹配，可能该账号已在其他客户端登录。";
"rsa.bind.error.certificate_mismatch" = "该客户端使用的证书与服务器不匹配，可能该账号已在其他客户端登录。";
"rsa.bind.error.server_protocol" = "服务器返回格式无效。";
"rsa.bind.error.unauthenticated" = "登录状态无效，请重新登录。";
"rsa.bind.error.http_status_format" = "请求失败（HTTP %d）。";

/* Network proxy (SOCKS5) */
"proxy.picker.label" = "网络线路";
"proxy.option.none" = "无需代理服务器";
"proxy.option.china" = "中国大陆";
"proxy.option.hong_kong" = "香港";
"proxy.option.usa" = "美国";
"proxy.option.iran" = "伊朗";
"proxy.option.egypt" = "埃及";
