{
  "time": {
    "current_time_label": "当前时间：",
    "input_label": "输入（时间戳或日期）",
    "input_placeholder": "1690000000 / 1690000000000 / 2026-04-22T00:00:00Z",
    "convert": "转换",
    "copy_output": "复制输出",
    "output": "输出",
    "err_parse_timestamp": "无法解析时间戳",
    "err_parse_date": "无法解析日期字符串",
    "copied": "已复制。"
  },
  "json_diff": {
    "intro": "基于 jsondiffpatch 的对象级差异（非纯文本行 diff）。数组支持移动检测；delta 为补丁结构，可用于理解字段增删改。",
    "left_json": "左侧 JSON",
    "right_json": "右侧 JSON",
    "compute": "计算差异",
    "delta_title": "Delta（jsondiffpatch 格式）",
    "no_diff_comment": "// 无差异（两棵 JSON 结构相同）",
    "parse_failed": "解析失败"
  },
  "ascii": {
    "th_dec": "Dec",
    "th_hex": "Hex",
    "th_char": "字符",
    "th_note": "说明",
    "note_control": "控制",
    "note_printable": "可打印"
  },
  "uuid": {
    "count_label": "生成数量（1–200）",
    "generate_uuid_v4": "生成 UUID v4",
    "copy_all": "复制全部",
    "please_generate_first": "请先生成。",
    "copied_all": "已复制全部。",
    "output": "输出",
    "output_placeholder": "点击生成。"
  },
  "ulid": {
    "count_label": "数量（1–100）",
    "generate": "生成 ULID",
    "copy": "复制",
    "placeholder": "按时间排序友好的 26 位 ID"
  },
  "nanoid": {
    "length_label": "长度（4–64）",
    "alphabet_hint": "自定义字母表（留空则用 nanoid 默认 URL 安全集）",
    "generate": "生成",
    "copy": "复制"
  },
  "units": {
    "css_title": "CSS：px ↔ rem",
    "root_px": "根字号（px）",
    "check_line": "校验：{px}px ÷ {root} = {rem} rem",
    "storage_title": "数据存储",
    "iec_toggle": "IEC（1024 为步进：KiB/MiB/GiB）",
    "bytes_label": "字节数（整数）"
  },
  "color": {
    "picker": "取色器",
    "css": "CSS",
    "hex": "HEX",
    "rgb_title": "RGB（0–255）",
    "hsl_title": "HSL",
    "h_label": "H（°）",
    "s_label": "S（%）",
    "l_label": "L（%）",
    "copy_all_formats": "复制全部格式",
    "copied_line": "已复制 HEX / RGB / HSL 一行。"
  },
  "contrast": {
    "fg": "前景（文字）",
    "bg": "背景",
    "large_text_toggle": "按「大字」阈值评估（≥18pt 粗体或 ≥24pt 常规）",
    "sample_text": "示例文字 Aa 中文 123",
    "invalid_hex": "请使用 #RRGGBB 或 #RGB 形式。",
    "ratio_label": "对比度",
    "wcag_prefix": "WCAG 2.1："
  },
  "url_parse": {
    "parse": "解析",
    "err_invalid": "无效 URL",
    "url_object_fields": "URL 对象字段",
    "search_params": "查询参数（searchParams）",
    "key": "键",
    "value": "值",
    "port_default": "(默认)",
    "page_intro": "使用原生 <api>URL</api> 与 <usp>URLSearchParams</usp>，无网络请求。"
  },
  "punycode": {
    "unicode_label": "Unicode 域名 / 标签（可按行或多段用点分隔）",
    "to_punycode": "→ Punycode / ASCII",
    "puny_label": "Punycode（xn--…）",
    "to_unicode": "→ Unicode",
    "fail": "失败"
  },
  "data_url": {
    "drop_label": "文件 → Data URL",
    "drop_title": "选择或拖入文件",
    "drop_desc": "使用 FileReader.readAsDataURL，不上传。",
    "data_url": "Data URL",
    "copy": "复制",
    "decode_download": "解码并下载",
    "err_format": "格式应为 data:[mime][;base64],数据",
    "decode_failed": "解码失败"
  },
  "mime_sniff": {
    "drop_label": "读取文件头",
    "drop_title": "选择或拖入文件",
    "drop_desc": "仅读取前 64 字节做魔数匹配，不上传。",
    "guess_type": "推测类型",
    "first_64_hex": "前 64 字节（hex）"
  },
  "mime_types": {
    "search_ph": "搜索扩展名或 MIME…",
    "col_ext": "扩展名",
    "col_mime": "MIME",
    "col_note": "备注"
  },
  "html_format": {
    "format": "格式化",
    "minify_simple": "简易压缩（去注释外空白）",
    "output": "输出",
    "copy": "复制",
    "fail": "失败"
  },
  "svg_format": {
    "source": "SVG 源码",
    "validate_indent": "校验并缩进",
    "xml_parse_err": "XML 解析失败，请检查标签闭合。",
    "fail": "失败"
  },
  "markdown": {
    "render_failed": "渲染失败",
    "label": "Markdown 源码",
    "export_html": "导出 HTML",
    "copy_md": "复制 Markdown",
    "preview": "实时预览"
  },
  "http_codes": {
    "search_ph": "搜索状态码、英文名或说明…",
    "col_code": "码",
    "col_name": "名称",
    "col_desc": "说明"
  },
  "ua_parse": {
    "fill_ua": "填入本机 UA",
    "hint": "轻量正则粗解析，非完整设备型号库；复杂爬虫/内嵌 WebView 可能识别为 Other。",
    "browser": "浏览器",
    "engine": "引擎（粗）",
    "os": "系统",
    "mobile": "移动设备",
    "yes": "是",
    "no": "否"
  },
  "keycode": {
    "instructions": "点击下方区域后按键（部分浏览器会拦截系统快捷键，属正常安全策略）。",
    "capture_aria": "按键捕获区",
    "focus_hint": "点此聚焦，然后按下键盘…",
    "which_keycode": "which / keyCode（已弃用）",
    "modifiers": "修饰键"
  },
  "yaml_json": {
    "warning": "js-yaml 会执行部分标签解析；请勿粘贴不可信的大型 YAML。本页仅在本地转换。",
    "yaml_to_json": "YAML → JSON",
    "json_to_yaml": "JSON → YAML",
    "parse_failed": "解析失败"
  },
  "toml_json": {
    "warning": "TOML 日期等类型会映射为 JSON 可表达形式；请勿粘贴不可信的大型配置。",
    "toml_to_json": "TOML → JSON",
    "json_to_toml": "JSON → TOML",
    "parse_failed": "解析失败"
  },
  "json_csv": {
    "json_label": "JSON（对象数组）",
    "csv_label": "CSV（首行为表头）",
    "json_to_csv": "JSON → CSV",
    "csv_to_json": "CSV → JSON",
    "need_object_array": "JSON 须为对象数组。",
    "parse_failed": "解析失败"
  },
  "jsonpath": {
    "expr_label": "JSONPath 表达式",
    "hint": "基于 jsonpath-plus，与部分 jq 习惯类似。",
    "query": "查询",
    "result_array": "结果（数组）",
    "fail": "失败"
  },
  "json_to_ts": {
    "root_name": "根接口名",
    "generate": "生成类型",
    "typescript": "TypeScript",
    "fail": "失败"
  },
  "jmespath": {
    "expr_label": "JMESPath 表达式",
    "hint": "与 AWS CLI、部分语言 SDK 使用的 JMESPath 语法一致；字面量 JSON 需用反引号包裹，如",
    "query": "查询",
    "result": "结果",
    "fail": "失败"
  },
  "sql_format": {
    "dialect": "方言",
    "dialect_sql": "标准 SQL",
    "beautify": "美化",
    "compress": "压缩",
    "output": "输出",
    "format_failed": "格式化失败"
  },
  "gitignore": {
    "templates": "勾选模板",
    "merge": "合并生成",
    "placeholder": "合并后的 .gitignore",
    "copy": "复制"
  },
  "compress": {
    "warn": "使用浏览器原生 CompressionStream / DecompressionStream；Brotli（br）依浏览器而定。输出为 Base64 字节。",
    "algo": "算法",
    "mode_compress": "压缩",
    "mode_decompress": "解压",
    "utf8_text": "UTF-8 文本",
    "run_text_compress": "压缩文本",
    "run_text_decompress": "解压（期望解压为 UTF-8 文本）",
    "file_label": "或文件（原始字节）",
    "file_title": "选择文件",
    "file_desc": "按二进制压缩或解压。",
    "b64_label": "Base64 结果 / 输入",
    "copy_b64": "复制 Base64",
    "from_b64_compress": "从 Base64 压缩",
    "from_b64_decompress": "从 Base64 解压",
    "unsupported_algo": "当前浏览器不支持该算法，请换 Chrome/Edge 新版或改用 gzip/deflate。",
    "done_bytes": "完成（{n} bytes）",
    "fail": "失败",
    "b64_invalid": "Base64 无效"
  },
  "cron": {
    "label": "Cron（分 时 日 月 周）",
    "hint": "使用 cronstrue 中文说明；复杂表达式以库解析为准。",
    "natural_language": "自然语言",
    "cannot_parse": "无法解析该表达式"
  },
  "chmod": {
    "oct_label": "八进制（如 644、755）",
    "to_rwx": "→ rwx",
    "rwx_label": "rwxrwxrwx",
    "to_octal": "→ 八进制",
    "err_oct_range": "八进制须在 0–777",
    "err_rwx": "rwx 须为 9 位，仅含 r w x -（暂简化 setuid 位）"
  },
  "cidr": {
    "label": "IPv4/CIDR",
    "calc": "计算",
    "err": "错误",
    "network": "网络地址",
    "broadcast": "广播",
    "mask": "子网掩码",
    "first_host": "首个主机",
    "last_host": "末主机",
    "total_addrs": "总地址数",
    "usable_hosts": "可用主机（/31、/32 为简化）"
  },
  "ipv6": {
    "label": "IPv6 地址或 CIDR",
    "parse": "解析",
    "err": "错误",
    "correct_form": "规范形式（correctForm）",
    "canonical_form": "完整展开（canonicalForm）",
    "prefix_len": "前缀长度",
    "subnet_start": "子网起始",
    "subnet_end": "子网结束",
    "addr_count": "地址数量"
  },
  "ieee754": {
    "label": "数字（十进制）",
    "need_finite": "请输入有限数字。",
    "float64": "Float64",
    "float32": "Float32",
    "hex_be": "十六进制（大端）",
    "detail_64": "符号 {sign} · 阶码 {exp} (偏置 1023) · 尾数（hex） {frac}",
    "detail_32": "符号 {sign} · 阶码 {exp} (偏置 127) · 尾数 {frac}"
  },
  "num_base": {
    "from_radix": "源进制（2–36）",
    "digits": "数字串",
    "convert": "转换",
    "common_bases": "常用进制",
    "parse_err": "无法解析为整数（当前进制下仅支持合法数字）。"
  },
  "iban": {
    "label": "IBAN（可含空格）",
    "check": "校验 mod 97",
    "ok": "校验通过（mod 97 = 1）。规范化：{n}",
    "bad": "校验未通过（余数 {r}）。规范化：{n}"
  },
  "luhn": {
    "label": "数字串（可含空格）",
    "check": "Luhn 校验",
    "pass": "通过 Luhn（模 10）",
    "fail": "未通过"
  },
  "phone": {
    "default_country": "默认国家/地区（ISO 3166-1 alpha-2，无 + 号时用于推断）",
    "number": "电话号码",
    "parse": "解析",
    "unparsed": "无法解析为有效号码（可尝试调整默认国家/地区）",
    "err": "错误",
    "line_e164": "E.164: {v}",
    "line_intl": "国际格式: {v}",
    "line_nat": "国内格式: {v}",
    "line_country": "国家/地区: {c}（调用时默认 {d}）",
    "line_type": "类型: {v}",
    "line_valid": "有效: {v}",
    "yes": "是",
    "no": "否",
    "dash": "—"
  },
  "letter_codes": {
    "input": "输入（支持英文字母与数字；空格在摩尔斯中用 / 表示）",
    "nato": "北约音标字母（NATO）",
    "morse": "摩尔斯电码",
    "braille": "六点盲文（英文 A–Z 与数字）"
  },
  "barcode": {
    "format": "格式",
    "content": "内容（EAN13/UPC 等需合法长度与字符）",
    "download_png": "下载 PNG",
    "cannot_generate": "无法生成"
  },
  "media_convert": {
    "intro": "实验性：首次加载会从 CDN 拉取 ffmpeg wasm（体积较大）。适合中小文件；成功与否取决于 wasm 核心内建编解码器。",
    "load_btn_loading": "加载中…",
    "load_btn_ready": "已就绪",
    "load_btn_idle": "加载 ffmpeg 核心",
    "media_file": "媒体文件",
    "no_file": "尚未选择媒体文件。",
    "out_ext": "输出扩展名",
    "convert_go": "开始转换",
    "converting": "转换中…",
    "download": "下载 {name}",
    "log": "日志",
    "load_failed": "加载失败",
    "ffmpeg_loaded_log": "ffmpeg 核心已加载（自 unpkg CDN，仅本次会话使用）",
    "ffmpeg_exit": "ffmpeg 退出码 {c}，请查看日志",
    "convert_failed": "转换失败",
    "moved_notice": "媒体转换已迁移至「视频工具」分类，请使用新版视频格式转换（功能更完整）。",
    "moved_link": "前往视频格式转换 →"
  },
  "video_common": {
    "intro": "进入页面将自动加载 ffmpeg 核心（约 30MB，仅本次会话）。优先同源 / jsDelivr / unpkg 的 UMD 资源。请使用 npm run dev（勿用 dev:turbo）。建议单文件不超过 {mb}MB。",
    "core_loading": "正在加载视频处理组件…",
    "core_reload": "重新加载组件",
    "load_btn_loading": "加载中…",
    "load_btn_ready": "核心已就绪",
    "load_btn_idle": "加载 ffmpeg 核心",
    "media_file": "选择视频或音频文件",
    "no_file": "尚未选择文件。",
    "converting": "处理中…",
    "download": "下载 {name}",
    "log": "处理日志",
    "load_failed": "ffmpeg 核心加载失败，请检查网络后重试。",
    "load_failed_wasm": "ffmpeg-core.wasm（约 32MB）未加载成功。可关闭代理/VPN 后重试，或换网络。",
    "ffmpeg_exit": "ffmpeg 退出码 {c}，请换输出格式或先用「视频压缩」重编码后再试。",
    "convert_failed": "处理失败",
    "progress": "进度约 {n}%",
    "err_file_too_large": "文件超过 {mb}MB 上限，请先剪切或压缩后再试。"
  },
  "video_convert": {
    "page_intro": "在 MP4、WebM、MKV、GIF、M4A、WAV 等格式间转换。部分编码器受 wasm 核心限制，若失败可换输出格式或先用「视频压缩」重编码。",
    "out_ext": "输出格式",
    "convert_go": "开始转换"
  },
  "video_to_mp4": {
    "page_intro": "将常见视频与音频导出为 MP4（H.264/AAC 由 ffmpeg 自动选择）。适合分享、剪辑软件导入与移动端播放。若失败可尝试「视频压缩」先重编码。"
  },
  "video_mov_to_mp4": {
    "page_intro": "针对 QuickTime / iPhone 常见的 MOV 文件，一键转为 MP4。仍支持拖入其它视频格式，输出固定为 MP4。"
  },
  "video_mkv_to_mp4": {
    "page_intro": "将 Matroska（.mkv）转为 MP4，解决部分播放器不兼容 MKV 的问题。输出固定为 MP4。"
  },
  "video_webm_to_mp4": {
    "page_intro": "将网页录屏或下载的 WebM 转为 MP4，便于在本地播放器与剪辑软件中使用。输出固定为 MP4。"
  },
  "video_avi_to_mp4": {
    "page_intro": "将老式 AVI 容器转为 MP4。输出固定为 MP4；极旧编码若失败请先压缩重编码。"
  },
  "video_to_webm": {
    "page_intro": "导出 WebM（VP8/VP9 + Opus/Vorbis，由 ffmpeg 自动选择）。适合网页嵌入；部分环境播放支持有限。"
  },
  "video_to_mkv": {
    "page_intro": "导出 MKV 容器。适合归档多音轨/字幕场景；日常分享更推荐 MP4。"
  },
  "video_trim": {
    "page_intro": "按秒设置起止时间裁剪片段。「快速」使用流复制（快，切割点可能略有偏差）；「精确」重新编码（慢，边界更准确）。",
    "duration_label": "视频时长约 {sec} 秒",
    "start_sec": "开始（秒）",
    "end_sec": "结束（秒）",
    "mode_label": "剪切模式",
    "mode_copy": "快速（流复制）",
    "mode_encode": "精确（重编码）",
    "trim_go": "剪切并下载"
  },
  "video_compress": {
    "page_intro": "通过降低分辨率与提高 CRF 减小体积。CRF 越大文件越小、画质越低（常用 23–32）。",
    "height_label": "最大高度",
    "height_option": "{h}p",
    "crf_label": "CRF（当前 {crf}）",
    "crf_hint": "数值越大压缩越强、画质越低。",
    "compress_go": "压缩并下载"
  },
  "video_to_gif": {
    "page_intro": "将视频转为 GIF。帧率与宽度越大，文件越大、处理越慢。",
    "fps_label": "帧率 (fps)",
    "width_label": "宽度（像素）",
    "convert_go": "生成 GIF"
  },
  "video_extract_audio": {
    "page_intro": "从视频中剥离音轨。M4A 体积较小；WAV 无损体积大。",
    "format_label": "输出格式",
    "format_m4a": "M4A (AAC)",
    "format_wav": "WAV (PCM)",
    "format_hint": "wasm 核心可能不支持 MP3 编码，建议使用 M4A。",
    "extract_go": "提取音频"
  },
  "x509_view": {
    "intro": "粘贴 PEM（含 BEGIN/END）或 DER 的 Base64；指纹使用 Web Crypto 计算 SHA-256，仅在本地执行。",
    "cert": "证书",
    "parse": "解析",
    "parsing": "解析中…",
    "fingerprint": "SHA-256 指纹（十六进制）",
    "structured": "结构化信息",
    "parse_failed": "解析失败"
  },
  "jwt": {
    "warning": "仅做 Base64URL 解码与 JSON 排版，<strong>不验证签名</strong>，不可用于鉴权判断。请勿将含敏感信息的 token 粘贴到不可信环境。",
    "input_label": "JWT 字符串",
    "decode": "解码",
    "err_empty": "请输入 JWT。",
    "err_parts": "格式异常：至少需要 header.payload 两段。",
    "err_header_json": "Header 无法解析为 JSON。",
    "err_payload_json": "Payload 无法解析为 JSON。"
  },
  "base64": {
    "text_label": "文本",
    "text_to_base64": "文本 → Base64",
    "base64_to_text": "Base64 → 文本",
    "base64_field": "Base64",
    "base64_from_file": "从文件生成 Base64",
    "select_or_drop_file": "选择或拖入文件",
    "base64_from_file_desc": "按原始字节编码，不上传。",
    "encoded_file": "已编码：{name}",
    "copy": "复制",
    "copied": "已复制。",
    "base64_to_download": "解码并下载",
    "decode_failed": "解码失败"
  },
  "base32": {
    "original_utf8": "原文（UTF-8）",
    "text_to_base32": "文本 → Base32",
    "base32_to_text": "Base32 → 文本",
    "base32_rfc4648": "Base32（RFC 4648，无填充）",
    "copy": "复制",
    "copied_base32": "已复制 Base32。",
    "decode_failed": "解码失败"
  },
  "base58": {
    "text_utf8": "文本（UTF-8）",
    "text_to_base58": "文本 → Base58",
    "base58_to_text": "Base58 → 文本",
    "base58_field": "Base58",
    "decode_failed": "解码失败"
  },
  "url_encode": {
    "input": "输入",
    "output": "输出",
    "encode": "编码",
    "decode": "解码",
    "copy_output": "复制输出",
    "copied": "已复制。",
    "decode_failed": "解码失败"
  },
  "hex": {
    "text_utf8": "文本（UTF-8）",
    "text_to_hex": "文本 → Hex",
    "hex_to_text": "Hex → 文本",
    "hex_field": "十六进制（可含空格、换行、0x，解码时会自动剔除）",
    "copy": "复制",
    "copied_hex": "已复制 Hex。",
    "err_hex_odd_length": "十六进制长度须为偶数（已忽略空格与 0x）。",
    "err_utf8_decode": "无法按 UTF-8 解码"
  },
  "escape": {
    "mode": "模式",
    "html_entity_mode": "HTML 实体",
    "json_string_mode": "JSON 字符串转义",
    "input": "输入",
    "encode_or_escape": "编码 / 转义",
    "decode_or_restore": "解码 / 还原",
    "json_decode_not_string": "JSON 值不是字符串。",
    "decode_failed": "解码失败",
    "output": "输出",
    "copied_output": "已复制输出。",
    "copy_output": "复制输出",
    "failed": "失败",
    "page_intro": "对标常见在线工具的 Escape / 实体功能：HTML 用核心字符实体；JSON 模式生成可被 <jp>JSON.parse</jp> 解析的字符串字面量。"
  },
  "hash": {
    "select_file": "选择文件",
    "select_or_drop_file": "选择或拖入文件",
    "hash_local_desc": "在本地计算摘要，不上传。",
    "please_select_file": "请先选择文件。",
    "computing": "计算中…",
    "compute_digest": "计算摘要",
    "copy": "复制",
    "computed_file": "已计算：{name}（{size} bytes）",
    "compute_failed": "计算失败",
    "md5_label": "MD5",
    "sha256_label": "SHA-256",
    "dash": "—"
  },
  "hmac": {
    "hash_algorithm": "哈希算法",
    "secret_key": "密钥",
    "message": "消息",
    "compute_hmac_hex": "计算 HMAC（十六进制）",
    "output": "输出",
    "copy": "复制",
    "failed": "失败",
    "dash": "—"
  },
  "aes": {
    "aes_pbkdf2_note": "AES-256-GCM：随机盐 + PBKDF2（{iter} 次迭代，SHA-256）仅在浏览器本地派生密钥。",
    "passphrase": "口令",
    "plaintext": "明文",
    "encrypt": "加密",
    "decrypt": "解密",
    "processing": "处理中…",
    "please_input_passphrase": "请输入口令。",
    "encrypt_success": "加密成功。",
    "encrypt_failed": "加密失败",
    "cipher_base64": "密文（Base64：盐∥IV∥数据）",
    "cipher_too_short": "密文过短或损坏。",
    "decrypt_success": "解密成功。",
    "decrypt_failed_bad_key": "解密失败（口令错误或数据异常）。",
    "copied_cipher": "已复制密文。",
    "copy_cipher": "复制密文"
  },
  "password": {
    "select_charset": "请至少勾选一类字符。",
    "length_4_to_256": "长度（4–256）",
    "upper_az": "大写 A–Z",
    "lower_az": "小写 a–z",
    "digits": "数字",
    "symbols": "符号",
    "generate": "生成",
    "copy": "复制",
    "copied": "已复制。",
    "result": "结果",
    "placeholder_click_generate": "点击「生成」",
    "footnote": "使用 crypto.getRandomValues；符号集为常用键盘可输入字符子集，可按需勾选。"
  },
  "crc32": {
    "text_utf8": "文本（UTF-8）",
    "compute_crc32": "计算 CRC32",
    "label_from_file": "或从文件计算",
    "title_drop": "选择或拖入文件",
    "desc_local": "按原始字节计算 IEEE CRC-32，不上传。",
    "crc32_title": "CRC32",
    "label_current_text": "当前文本",
    "copy_hex": "复制十六进制",
    "copied_hex_value": "已复制十六进制值。",
    "msg_computed": "已计算：{label}（{bytes} bytes）",
    "read_failed": "读取失败",
    "decode_failed": "失败",
    "dash": "—"
  },
  "xor": {
    "warning": "XOR 对称可逆，无认证与完整性保护，勿用于真实保密；适合演示、CTF 或与固定密钥的简单混淆。",
    "encrypt_section": "加密",
    "decrypt_section": "解密",
    "plaintext_utf8": "明文（UTF-8）",
    "key_utf8_cyclic": "密钥（UTF-8，循环使用）",
    "output_format": "输出格式",
    "opt_hex": "十六进制",
    "opt_b64": "Base64",
    "xor_to_cipher": "XOR → 密文",
    "cipher_label": "密文",
    "cipher_input_label": "密文（{mode}）",
    "xor_to_plain": "XOR → 明文",
    "plaintext_result": "明文",
    "err_key_empty": "密钥不能为空",
    "err_hex_odd": "十六进制长度须为偶数",
    "failed": "失败"
  },
  "vigenere": {
    "intro": "维吉尼亚密码：仅对 A–Z / a–z 变换；其他字符不变。密钥中非字母字符会被忽略。",
    "text": "文本",
    "key_english": "密钥（字母）",
    "encrypt": "加密",
    "decrypt": "解密",
    "result": "结果",
    "err_key_letters": "密钥至少需要包含一个 A–Z 字母",
    "error_generic": "错误"
  },
  "rsa": {
    "intro": "使用浏览器 <link>Web Crypto</link> 的 RSA-OAEP；仅适合短文本或封装对称密钥。需要安全上下文（HTTPS 或 localhost）。",
    "generate_keypair": "生成密钥对",
    "pub_pem": "公钥（SPKI PEM）",
    "priv_pem": "私钥（PKCS#8 PEM）",
    "encrypt_section": "加密",
    "plaintext_utf8": "明文（UTF-8）",
    "encrypt_public": "公钥加密",
    "cipher_section": "密文与解密",
    "cipher_b64": "密文 Base64",
    "decrypt_private": "私钥解密",
    "decrypted": "解密结果",
    "msg_generated": "已生成 2048 位 RSA-OAEP（SHA-256）密钥对；私钥仅在本地内存，请勿分享。",
    "msg_generate_fail": "生成失败（部分环境需在 HTTPS 或 localhost 的安全上下文中）。",
    "err_need_public_pem": "请先生成或粘贴公钥 PEM。",
    "err_plain_too_long": "明文过长：RSA-OAEP（2048 / SHA-256）单段加密通常不超过约 {max} 字节，当前 {current}。可改用对称加密（本站 AES-256-GCM）封装密钥。",
    "encrypt_failed": "加密失败",
    "err_need_private_pem": "请先生成或粘贴私钥 PEM。",
    "decrypt_failed": "解密失败",
    "err_pem_parse": "无法解析 PEM，请检查 BEGIN/END 块。"
  },
  "qr_generate": {
    "content_label": "内容（文本 / URL / Wi‑Fi）",
    "size_px": "尺寸（px）",
    "margin": "边距",
    "foreground": "前景色",
    "background": "背景色",
    "generate_preview": "生成预览",
    "busy": "生成中…",
    "download_png": "下载 PNG",
    "preview": "预览",
    "qr_alt": "二维码",
    "err_empty": "内容不能为空",
    "err_generate": "生成失败"
  },
  "qr_decode": {
    "drop_label": "上传含二维码的图片",
    "drop_title": "选择或拖入 PNG / JPG 等",
    "drop_desc": "在本地用 jsQR 解析，不上传。",
    "empty_hint": "尚未选择图片。",
    "parse_result": "解析结果",
    "copy": "复制",
    "err_canvas": "Canvas 不可用",
    "err_not_found": "未识别到二维码（请换更清晰、对比度更高的图）",
    "err_decode": "解码失败",
    "err_load_image": "无法加载图片",
    "dash": "—"
  },
  "text_case": {
    "mode_label": "转换方式",
    "mode_upper": "全大写",
    "mode_lower": "全小写",
    "mode_title": "标题式（按词）",
    "mode_sentence": "句首大写（启发式）",
    "mode_camel": "camelCase",
    "mode_constant": "CONSTANT_CASE",
    "mode_kebab": "kebab-case",
    "mode_snake": "snake_case",
    "source": "原文",
    "result": "结果",
    "copy_result": "复制结果",
    "placeholder_source": "粘贴或输入文本…"
  },
  "text_lines": {
    "sort_asc": "行排序（升序）",
    "sort_desc": "行排序（降序）",
    "dedupe": "按行去重",
    "remove_empty": "删除空行",
    "trim_lines": "每行 trim",
    "reverse": "反转行顺序",
    "input": "输入",
    "result": "结果",
    "copy_result": "复制结果",
    "placeholder_input": "每行一条，或粘贴列表…",
    "placeholder_result": "点击上方按钮生成…"
  },
  "text_stats": {
    "label": "文本",
    "placeholder": "粘贴内容，统计实时更新…",
    "lines": "行数",
    "chars_code_units": "字符数（代码单元）",
    "chars_no_ws": "字符数（不含空白）",
    "words_ws": "词数（空白分词）",
    "graphemes": "字素簇（Intl，近似「字数」）",
    "bytes_utf8": "UTF-8 字节",
    "footnote": "「词数」对英文按空白分词；中日韩等无空格语言可主要参考字素簇。统计在本地即时完成。"
  },
  "text_replace": {
    "find": "查找",
    "replace_with": "替换为",
    "use_regex": "使用正则表达式",
    "flags": "Flags",
    "source": "原文",
    "result": "结果",
    "copy": "复制",
    "footnote": "普通模式下为全局字面量替换；正则模式下行为与 String.replace 一致，注意转义与 flags（常用 g、i、m）。"
  },
  "text_split_join": {
    "delimiter": "分隔符",
    "placeholder_delimiter": "例如 , 或 | 或自定义",
    "split_lines": "拆分 → 每段一行",
    "join_lines": "合并 ← 按行拼接",
    "copy_result": "复制结果",
    "help": "拆分：把原文按分隔符切开，每段显示为一行。合并：把当前输入按行读入，行与行之间插入分隔符输出为一整块文本。",
    "placeholder_input": "拆分：粘贴用逗号分隔的一整行；合并：每行一项…",
    "placeholder_output": "点击拆分或合并…",
    "input": "输入",
    "output": "输出"
  },
  "text_regex": {
    "warn_truncated": "仅对前 {max} 个字符做匹配与高亮。",
    "pattern": "正则",
    "flags": "Flags",
    "flags_ph": "gimsuy",
    "invalid": "正则无效",
    "text": "文本",
    "match_count": "匹配 {count} 处",
    "list_omitted": "… 其余省略"
  },
  "text_diff": {
    "text_a": "文本 A",
    "text_b": "文本 B",
    "line_diff": "行级 Diff"
  },
  "text_lorem": {
    "paragraphs": "段落数（1–50）",
    "generate": "生成",
    "copy": "复制",
    "placeholder": "点击「生成」"
  },
  "text_rot13": {
    "label": "文本（A–Z 循环移 13 位，再执行一次即还原）",
    "action": "ROT13"
  },
  "text_strip_html": {
    "warning": "使用 DOMParser 提取文本节点，不会执行脚本；仍请勿粘贴来自不可信来源的巨大 HTML。",
    "html": "HTML",
    "plain": "纯文本",
    "extract": "提取纯文本",
    "placeholder_out": "点击左侧按钮生成"
  },
  "text_slug": {
    "input": "输入",
    "generate": "生成 slug",
    "hint": "去声调后仅保留 a–z、0–9，空白与符号转为连字符（适合 URL 片段，非完整 SEO 方案）。",
    "result": "结果",
    "copy": "复制",
    "dash": "—"
  },
  "text_indent": {
    "text": "文本",
    "use_tab": "使用 Tab 缩进",
    "spaces_per_level": "每级空格数",
    "dedent_times": "反缩进次数",
    "indent_once": "整体增加一级缩进",
    "dedent_tab": "每行最多去掉 {n} 个前导 Tab",
    "dedent_space": "每行最多去掉 {n} 个前导空格"
  },
  "text_sort_lines": {
    "label": "按行排序",
    "desc": "降序",
    "natural": "自然排序（数字按数值）",
    "trim_end": "排序前行尾 trim",
    "sort": "排序",
    "page_intro": "与「行整理」中的排序互补：可切换升序/降序，并开启 <lc>localeCompare</lc> 的数字友好模式，适合版本号、文件名列表等。"
  },
  "text_line_numbers": {
    "text": "文本",
    "start": "起始序号",
    "pad_width": "序号最小宽度",
    "separator": "分隔符",
    "add": "添加行号",
    "strip": "尝试去掉「数字 | 」前缀（简易）",
    "footnote": "去掉行号使用简单正则，仅匹配以空格、数字、竖线开头的形式；复杂情况请手动编辑。"
  },
  "text_wrap": {
    "note": "按 UTF-16 码元计数宽度，与「终端列宽」或 CJK 显示宽度不完全一致；长单词是否硬断行可开关。",
    "text": "文本",
    "max_width": "每行最大字符数",
    "break_long": "超长无空格行也硬截断",
    "rewrap": "换行重排（就地替换）"
  },
  "csv_markdown": {
    "csv_to_md": "CSV → Markdown",
    "to_markdown": "转为 Markdown 表格",
    "md_to_csv": "Markdown 表格 → CSV",
    "to_csv": "转为 CSV",
    "failed": "失败"
  },
  "fullwidth": {
    "source": "原文",
    "to_full": "转全角",
    "to_half": "转半角",
    "footnote": "覆盖 ASCII 可打印字符与空格；中文等原样保留。"
  },
  "rmb_daxie": {
    "convert": "转换",
    "placeholder": "1234.56",
    "error": "错误"
  },
  "ics": {
    "raw_label": "iCalendar 文本",
    "parse": "解析",
    "no_events": "未解析到 VEVENT",
    "parse_failed": "解析失败",
    "no_title": "（无标题）",
    "start": "开始",
    "end": "结束",
    "location": "地点",
    "dash": "—"
  },
  "vcard": {
    "raw_label": "vCard 文本",
    "th_field": "字段",
    "th_value": "值",
    "empty": "无有效行"
  },
  "email_headers": {
    "raw_label": "原始邮件头（到第一个空行之前）",
    "th_name": "头名",
    "th_value": "值",
    "empty": "无解析结果"
  },
  "docmind": {
    "privacy_title": "云端转换说明",
    "privacy_body": "本工具通过本站转换服务将文件上传至阿里云文档智能（中国大陆节点）处理，处理完成后从阿里云返回下载链接。请勿上传含敏感个人信息的文件；结果链接有效期约 24 小时。",
    "err_no_file": "请先选择 PDF 文件。",
    "err_file_too_large": "文件不能超过 {max}MB。",
    "err_too_many_files": "每次只能上传 1 个 PDF 文件。",
    "err_failed": "转换失败",
    "err_no_download_url": "转换完成但未返回下载地址，请重试。",
    "err_proxy_unreachable": "无法连接转换服务（{base}）。请确认已启动 docmind 代理并配置 NEXT_PUBLIC_DOCMIND_API_URL。",
    "msg_submitting": "正在提交转换任务…",
    "msg_processing": "云端处理中，通常需数十秒至数分钟…",
    "msg_done": "转换完成，请在下方点击下载。",
    "result_title": "转换结果",
    "download_hint": "下载链接由阿里云提供，约 24 小时内有效；若无法保存，请在新标签页中打开链接。",
    "selected_file": "已选：{name}（约 {size} MB）",
    "poll_hint": "已查询 {count} 次，约每 10 秒自动刷新状态",
    "limits_note": "限制：每次 1 个 PDF、不超过 10MB、不超过 1000 页（以阿里云文档智能为准）。"
  },
  "pdf_to_word": {
    "drop_label": "选择 PDF 文件",
    "drop_desc": "单次 1 个 PDF，不超过 10MB；上传后由阿里云文档智能转为 Word（.docx）。",
    "empty_hint": "尚未选择文件。",
    "btn_convert": "转换"
  },
  "pdf_to_excel": {
    "drop_label": "选择 PDF 文件",
    "drop_desc": "单次 1 个 PDF，不超过 10MB；上传后由阿里云文档智能转为 Excel（.xlsx）。",
    "empty_hint": "尚未选择文件。",
    "btn_convert": "转换"
  },
  "pdf_roadmap": {
    "page_intro": "面向用户的产品承诺需要与技术边界一致：以下能力涉及版式引擎、字体子集与法律合规，无法在「纯浏览器 pdf-lib」路径里做到专业级，需要单独评估服务端、WASM 或商业 SDK。",
    "section_office_title": "Office 互转（Word / Excel / PPT）",
    "section_office_li1": "典型方案：自建转换服务（LibreOffice / OnlyOffice / 商业接口）或浏览器端 WASM（体积、授权与效果需单独评估）。",
    "section_office_li2": "建议产品策略：在站内明确标注「高保真转换需上传至转换服务」与隐私条款。",
    "section_edit_title": "批量改字 / 去水印",
    "section_edit_li1": "PDF 文本多为绘制指令而非可编辑文档树；「像 Word 一样改字」通常需要专业 PDF 引擎或人工精修。",
    "section_edit_li2": "「去水印」对任意文件无法保证成功；可做的合规能力是：去除用户通过本站工具叠加的图层，并在条款中明确限制。"
  },
  "pdf_merge": {
    "drop_label": "选择 PDF（按列表顺序合并，可多次添加）",
    "drop_desc": "支持多选，文件按下方列表顺序合并；可重复拖入以追加。",
    "err_need_two": "请至少选择 2 个 PDF 文件。",
    "msg_done": "已完成下载。",
    "err_failed": "合并失败",
    "empty_hint": "尚未选择文件。",
    "btn_merge_download": "合并并下载",
    "download_name": "合并结果.pdf"
  },
  "pdf_batch": {
    "phase2_title": "二期：批量队列 + Worker 渲染（若支持）",
    "phase2_body": "若浏览器支持 OffscreenCanvas，将使用 Worker 在后台光栅化，明显减少卡顿；否则自动降级为主线程分时处理。",
    "drop_label": "添加 PDF 到队列（可多选，可多次拖入）",
    "drop_desc": "非 PDF 扩展名会被自动过滤。任务在下方列表展示。",
    "err_no_pdf": "未识别到 PDF 文件。",
    "err_no_pending": "没有待处理任务（已完成项不会重复导出）。",
    "log_started": "开始批量导出…",
    "err_cancelled": "已取消",
    "err_failed_msg": "批量失败",
    "log_done_zip": "已完成打包下载。",
    "scale_label": "导出倍率（批量建议 1.4 - 2.2）",
    "fmt_label": "导出格式",
    "quality_label": "质量（0.1 - 1.0）",
    "status_prefix": "状态：",
    "status_pending": "待处理",
    "status_running": "处理中",
    "status_done": "已完成",
    "status_error": "错误",
    "btn_remove": "移除",
    "queue_empty": "队列为空。",
    "btn_export_all": "导出全部（{n} 项待处理）",
    "btn_processing": "处理中…",
    "btn_cancel": "取消",
    "btn_clear_queue": "清空队列",
    "log_page_progress": "{file}：{current}/{total}"
  },
  "pdf_compress": {
    "notice_title": "压缩策略（可解释）",
    "notice_body": "当前为「光栅化压缩」：把每页渲染成 JPG 再重建为 PDF。对扫描件体积下降明显；对文本型 PDF 可能变大或变模糊。",
    "drop_label": "选择 PDF",
    "drop_desc": "在本地对 PDF 做流式重打包以减小体积，不上传服务器。",
    "compress_desc": "在本地对 PDF 做流式重打包以减小体积，不上传服务器。",
    "empty_pdf": "尚未选择 PDF。",
    "scale_label": "渲染倍率（越高越清晰也越大）",
    "quality_label": "JPG 质量（0.1 - 1.0）",
    "btn_compress": "压缩并下载",
    "msg_select_first": "请先选择 PDF。",
    "msg_done_hint": "已完成下载（提示：扫描件压缩收益更明显）。",
    "err_failed": "压缩失败",
    "download_name": "压缩后.pdf"
  },
  "pdf_crop": {
    "intro": "通过设置 CropBox/MediaBox 来裁剪页边距（单位 pt）。这不会「删除」原始内容，只是改变可视区域与页面边界。",
    "drop_label": "选择 PDF",
    "drop_desc": "裁切在本地完成。页码在下方设置。",
    "empty_pdf": "尚未选择 PDF。",
    "left": "左边距（pt）",
    "right": "右边距（pt）",
    "top": "上边距（pt）",
    "bottom": "下边距（pt）",
    "mode_label": "裁剪模式",
    "mode_crop_media": "同时修改 CropBox + MediaBox（更通用）",
    "mode_crop_only": "仅修改 CropBox（更保守）",
    "btn_crop": "裁剪并下载",
    "msg_select_pdf": "请先选择 PDF。",
    "msg_pick_pages": "请选择需要裁剪的页面。",
    "msg_done": "已完成下载。",
    "err_failed": "裁剪失败",
    "download_name": "裁剪页边距.pdf"
  },
  "pdf_decrypt": {
    "notice_title": "合规提示",
    "notice_body": "仅支持对「你知道密码」的 PDF 去除打开密码。本工具会把每页光栅化后重建为新 PDF，因此会丢失可选文字/链接等结构。",
    "drop_encrypt_label": "选择加密 PDF",
    "drop_desc": "在本地用密码解密，不会上传原文件。",
    "empty_pdf": "尚未选择 PDF。",
    "password_label": "打开密码",
    "scale_label": "渲染倍率",
    "quality_label": "JPG 质量（0.1 - 1.0）",
    "btn_decrypt": "解密并下载",
    "msg_select_first": "请先选择 PDF。",
    "msg_done": "已完成下载。",
    "err_failed": "解密失败",
    "download_name": "解密后.pdf"
  },
  "pdf_delete_pages": {
    "drop_label": "选择 PDF",
    "drop_desc": "点选要删除的缩略图；未选中的页面会保留并导出新文件。",
    "hint_short": "点选要删除的页面；未选中的页面会保留并导出为新 PDF。",
    "btn_delete": "删除所选页并下载",
    "empty_pdf": "尚未选择 PDF。",
    "msg_select_pdf": "请先选择 PDF。",
    "msg_pick_delete": "请选择要删除的页面。",
    "msg_done": "已完成下载。",
    "err_failed": "删除失败",
    "thumb_title": "选择要删除的页面",
    "download_name": "删除页面后.pdf"
  },
  "pdf_extract_text": {
    "drop_label": "选择 PDF",
    "drop_desc": "在本地按页提取文本，扫描件可能无文字层。",
    "empty_pdf": "尚未选择 PDF。",
    "btn_extract": "提取文本（txt）",
    "msg_select_pdf": "请先选择 PDF。",
    "progress_page": "正在提取第 {current} / {total} 页…",
    "msg_done_hint": "已导出 txt。提示：扫描件/图片型 PDF 可能提取不到文本。",
    "err_failed": "提取失败"
  },
  "pdf_header_footer": {
    "intro": "二期能力：支持左 / 中 / 右三栏页眉与页脚模板，占位符 '{'n'}' 与 '{'total'}' 会在导出时替换。支持中文内容（通过 OSS 思源黑体子集嵌入）；字体拉取失败会自动降级。",
    "presets_heading": "快速套用模板",
    "drop_label": "选择 PDF",
    "drop_desc": "为每页增删页眉页脚文本，在本地处理；支持 '{'n'}' / '{'total'}' 等占位符。",
    "empty_pdf": "尚未选择 PDF。",
    "header_left": "页眉左",
    "header_center": "页眉中",
    "header_right": "页眉右",
    "footer_left": "页脚左",
    "footer_center": "页脚中",
    "footer_right": "页脚右",
    "ph_company": "如：公司名",
    "ph_title": "如：文档标题",
    "ph_version": "如：版本号",
    "footer_center_ph": "推荐：'{'n'}' / '{'total'}'",
    "font_size": "字号",
    "margin_pt": "边距（pt）",
    "btn_apply": "应用并下载",
    "msg_select_pdf": "请先选择 PDF。",
    "msg_need_field": "请至少填写一个页眉或页脚区域。",
    "msg_pick_pages": "请选择需要应用模板的页面。",
    "msg_done": "已完成下载。",
    "err_failed": "处理失败",
    "preset_minimal_name": "简约页脚（n / total）",
    "preset_internal_name": "内部资料 + 页脚",
    "preset_dual_name": "双栏页眉 + 居中页脚",
    "preset_internal_header": "内部资料 · 请勿外传",
    "preset_internal_footer": "第 '{'n'}' 页 / 共 '{'total'}' 页",
    "preset_dual_footer": "保密信息",
    "download_name": "页眉页脚.pdf"
  },
  "images_to_pdf": {
    "intro": "当前支持 PNG / JPEG。每一张图片会对应 PDF 中的一页，页面尺寸与图片像素一致。",
    "drop_label": "选择图片（按列表顺序入页，可多次添加）",
    "drop_desc": "仅支持 PNG、JPEG。下方列表顺序即页序。",
    "empty_hint": "尚未选择文件。",
    "btn_generate": "生成 PDF",
    "msg_need_image": "请至少选择一张图片。",
    "msg_done": "已完成下载。",
    "err_failed": "生成失败",
    "download_name": "图片合并.pdf"
  },
  "pdf_metadata": {
    "drop_label": "选择 PDF",
    "drop_desc": "读取「文档属性」中的常见字段；修改后导出为新文件。",
    "empty_pdf": "尚未选择 PDF。",
    "label_title": "标题 Title",
    "label_author": "作者 Author",
    "label_subject": "主题 Subject",
    "label_keywords": "关键词 Keywords",
    "keywords_ph": "多个词用英文逗号或中文逗号分隔",
    "label_creator": "创建程序 Creator",
    "label_producer": "生成器 Producer（可选）",
    "producer_ph": "留空则保持原 PDF 中的 Producer",
    "label_language": "语言 Language（可选）",
    "language_ph": "如 zh-CN、en-US；留空则不修改目录中的 Lang",
    "checkbox_viewer_prefs": "在支持阅读器中优先用标题作为窗口标题（pdf-lib ViewerPreferences）",
    "btn_apply": "应用并下载",
    "msg_loaded": "已读取当前属性，可编辑后导出。",
    "msg_read_failed": "读取失败",
    "msg_select_pdf": "请先选择 PDF。",
    "msg_done_verify": "已写入属性并下载（部分阅读器会缓存旧属性，可换名打开验证）。",
    "err_export_failed": "导出失败",
    "download_suffix": "-元数据",
    "page_intro": "对应阅读器「文档属性 / 说明」中的常见字段。修改会写入新文件，不会上传服务器。能力来自 <pdflib>Hopding/pdf-lib</pdflib>。"
  },
  "pdf_page_numbers": {
    "intro": "占位符：'{'n'}' 当前页码，'{'total'}' 总页数。支持中文内容（如「第 '{'n'}' 页」），字体来自 OSS 思源黑体子集；加载失败会自动降级。",
    "drop_label": "选择 PDF",
    "drop_desc": "为所选页增加页脚/页边页码，在本地处理。",
    "empty_pdf": "尚未选择 PDF。",
    "start_number": "起始页码",
    "align_label": "对齐",
    "align_left": "左",
    "align_center": "中",
    "align_right": "右",
    "format_string": "版式字符串",
    "font_size": "字号",
    "margin_x": "水平边距（pt）",
    "margin_y_footer": "页脚抬升（pt，越大越靠上）",
    "btn_add": "添加页码并下载",
    "msg_select_pdf": "请先选择 PDF。",
    "msg_pick_pages": "请选择需要添加页码的页面。",
    "msg_done": "已完成下载。",
    "err_failed": "处理失败",
    "download_name": "加页码.pdf"
  },
  "pdf_reverse": {
    "drop_label": "选择 PDF",
    "drop_desc": "将整份文档的页面顺序前后颠倒，其它内容不变。",
    "empty_pdf": "尚未选择 PDF。",
    "btn_reverse": "反转页序并下载",
    "msg_select_pdf": "请先选择一个 PDF。",
    "msg_done": "已生成下载。",
    "err_failed": "处理失败",
    "download_suffix": "-页序反转",
    "page_intro": "适合装订方向或阅读顺序需要整体对调的场景；实现基于 <pdflib>pdf-lib</pdflib> 复制页面，不重新渲染矢量内容。"
  },
  "pdf_rotate": {
    "drop_label": "选择 PDF",
    "drop_desc": "在缩略图选择页后，为所选页追加相对旋转；在本地处理。",
    "empty_pdf": "尚未选择 PDF。",
    "angle_label": "追加旋转角度（相对当前页）",
    "btn_rotate": "应用旋转",
    "msg_select_pdf": "请先选择 PDF。",
    "msg_pick_page": "请至少选择一页。",
    "msg_rotate_done": "旋转完成，可点击下载。",
    "msg_download_done": "已开始下载。",
    "err_failed": "旋转失败",
    "thumb_title": "选择需要旋转的页面",
    "thumb_preview_hint": "预览使用缩略图展示，不影响实际导出效果。",
    "download_name": "旋转结果.pdf"
  },
  "pdf_split": {
    "drop_label": "选择 PDF",
    "drop_desc": "按「每一页」或按固定「分组页数」拆分为多个 PDF（ZIP 下载）。",
    "empty_pdf": "尚未选择 PDF。",
    "legend_mode": "拆分方式",
    "mode_each": "每页一个文件",
    "mode_chunk": "按固定页数分组",
    "chunk_size_label": "每组页数",
    "hint_each": "每一页导出为一个 PDF。",
    "hint_chunk": "按固定页数分组导出（当前每组 {chunk} 页）。",
    "btn_split": "拆分并下载 ZIP",
    "msg_select_pdf": "请先选择 PDF。",
    "msg_done_zip": "已生成压缩包并开始下载。",
    "err_failed": "拆分失败",
    "thumb_preview_title": "页面预览（仅浏览，拆分规则以上方选项为准）"
  },
  "pdf_stamp": {
    "drop_pdf_label": "选择 PDF",
    "drop_pdf_desc": "作为底稿，后续选择页面叠加图章。",
    "drop_stamp_label": "选择图章图片（PNG 推荐）",
    "drop_stamp_desc": "支持 PNG、JPEG。透明 PNG 效果通常更好。",
    "empty_pdf": "尚未选择 PDF。",
    "empty_stamp": "尚未选择图章图片。",
    "position_label": "位置",
    "scale_label": "缩放（相对原图宽度）",
    "margin_label": "边距（pt）",
    "pos_center": "居中",
    "pos_br": "右下",
    "pos_bl": "左下",
    "pos_tr": "右上",
    "pos_tl": "左上",
    "btn_apply": "叠加图章并下载",
    "msg_need_both": "请同时选择 PDF 与图章图片（PNG / JPG）。",
    "msg_pick_pages": "请选择需要叠加图章的页面。",
    "msg_done": "已完成下载。",
    "err_failed": "处理失败",
    "download_name": "加图章.pdf"
  },
  "pdf_to_images": {
    "hint_base": "导出为图片。清晰度由缩放倍率控制：倍率越高越清晰，但越占内存与耗时。",
    "hint_fallback": " 当前浏览器不支持离屏渲染，部分格式会降级为 PNG。",
    "drop_label": "选择 PDF",
    "drop_desc": "每页导出为图片，打包为 ZIP 下载；在本地处理。",
    "empty_pdf": "尚未选择 PDF。",
    "scale_label": "渲染倍率（建议 1.5 - 3）",
    "fmt_label": "导出格式",
    "opt_png": "PNG（无损）",
    "opt_jpeg": "JPG（更小）",
    "opt_webp": "WebP（更小）",
    "quality_label": "质量（0.1 - 1.0）",
    "btn_export": "导出（ZIP）",
    "msg_select_pdf": "请先选择 PDF。",
    "progress_export": "正在导出第 {current} / {total} 页…",
    "msg_zip_done": "已打包 ZIP 并开始下载。",
    "err_failed": "导出失败",
    "err_cancelled": "已取消"
  },
  "pdf_watermark": {
    "intro": "已支持中文文字水印（通过 OSS 思源黑体子集嵌入）。若字体拉取失败，将自动降级为内置字体；此时中文可能显示为空白方块。",
    "drop_label": "选择 PDF",
    "drop_desc": "为指定页添加文字水印，在本地完成。",
    "empty_pdf": "尚未选择 PDF。",
    "page_range_hint": "建议：all（全部） / odd（奇数页） / even（偶数页） / 1,3-5（指定页）",
    "label_text": "水印文字",
    "label_color": "颜色（#RRGGBB）",
    "label_font_size": "字号",
    "label_opacity": "不透明度（0-1）",
    "label_angle": "旋转角度（度）",
    "btn_generate": "生成并下载",
    "msg_select_pdf": "请先选择 PDF。",
    "msg_pick_pages": "请选择需要加水印的页面。",
    "msg_done": "已完成下载。",
    "err_failed": "处理失败",
    "download_name": "加水印.pdf"
  },
  "json_format": {
    "indent_label": "缩进",
    "indent_2": "2 空格",
    "indent_4": "4 空格",
    "indent_tab": "Tab",
    "font_size_label": "字号",
    "valid_ok": "✓ 格式正确",
    "valid_bad": "✗ 格式错误",
    "btn_escape": "转义 / 去转义",
    "btn_json_xml": "JSON ↔ XML",
    "btn_fold": "折叠 / 展开",
    "hdr_src": "源数据",
    "hdr_result": "结果（可编辑）",
    "ph_src": "在此粘贴或输入 JSON 数据…",
    "ph_result": "格式化后的 JSON 将显示在这里…",
    "flash_unescape_fmt_ok": "去转义并格式化成功",
    "flash_unescape_ok_maybe": "去转义成功（结果可能不是有效 JSON）",
    "flash_unescape_fail": "去转义失败",
    "flash_escape_ok": "转义成功",
    "flash_escape_ok_maybe": "转义成功（源数据可能不是有效 JSON）",
    "flash_escape_fail": "转义失败",
    "flash_please_data": "请先输入数据",
    "flash_xml_bad": "转换失败：XML 格式错误",
    "flash_json_bad": "转换失败：JSON 格式错误",
    "hint_xml_done": "已转换为 XML",
    "hint_json_done": "已转换为 JSON",
    "flash_need_json_src": "请先输入 JSON 数据",
    "flash_need_valid_json": "请先格式化或输入有效的 JSON",
    "hint_all_fold": "已全部折叠",
    "hint_all_unfold": "已全部展开",
    "flash_result_empty": "结果为空",
    "flash_clipboard_ok": "已复制到剪贴板",
    "flash_no_download": "没有内容可下载",
    "confirm_plain_download": "内容不是有效的 JSON，是否仍要下载？",
    "suffix_json_invalid": "JSON 格式无效",
    "btn_copy_result": "复制结果"
  },
  "og_preview": {
    "mock_card_title": "模拟卡片（非真实抓取）",
    "tag_snippet_title": "标签片段",
    "demo_title": "工具库 | Tools Ku",
    "demo_desc": "在浏览器本地运行的实用小工具集合。"
  },
  "robots": {
    "chk_allow_site": "Allow: /（允许整站抓取）",
    "lbl_disallow_paths": "Disallow 路径（每行一条）",
    "lbl_sitemap_urls": "Sitemap URL（每行一条）",
    "hdr_preview": "robots.txt"
  },
  "sitemap": {
    "lbl_site_root": "站点根 URL",
    "lbl_paths": "路径或完整 URL（每行一条）",
    "hdr_preview": "sitemap.xml"
  },
  "csp": {
    "opt_default": "default-src 'self'",
    "opt_script": "script-src 'self'",
    "opt_unsafe_inline": "允许内联脚本（弱）",
    "opt_style": "style-src 'self' 'unsafe-inline'",
    "opt_img": "img-src * data:",
    "opt_font": "font-src 'self'",
    "opt_connect": "connect-src 'self'",
    "opt_frame": "frame-ancestors 'none'",
    "opt_base": "base-uri 'self'",
    "opt_form": "form-action 'self'",
    "opt_upgrade": "upgrade-insecure-requests",
    "lbl_extra_directives": "额外指令（每行一条，将用分号拼接）",
    "hdr_preview": "Content-Security-Policy",
    "placeholder_extra": "report-uri https://..."
  },
  "permissions_policy": {
    "lbl_extra": "额外项（逗号分隔）",
    "hdr_preview": "Permissions-Policy",
    "placeholder_extra": "interest-cohort=()"
  },
  "env_parse": {
    "chk_mask": "遮盖值（仅展示，不修改原文）",
    "lbl_raw": ".env 内容",
    "th_key": "键",
    "th_value": "值",
    "empty_rows": "无键值行"
  },
  "http_headers": {
    "intro": "以下为常见安全响应头示例，按栈（Nginx / CDN / 框架）择一配置即可。",
    "hsts_title": "HSTS",
    "hsts_desc": "强制 HTTPS（按年）",
    "xcto_title": "X-Content-Type-Options",
    "xcto_desc": "禁止嗅探类型",
    "xfo_title": "X-Frame-Options",
    "xfo_desc": "禁止被嵌套（同 DENY）",
    "ref_title": "Referrer-Policy",
    "ref_desc": "收紧 Referer",
    "pp_title": "Permissions-Policy（示例）",
    "pp_desc": "关闭部分敏感 API"
  },
  "graphql_format": {
    "lbl_input": "GraphQL",
    "syntax_error": "语法错误"
  },
  "openapi_view": {
    "lbl_input": "OpenAPI（JSON）",
    "err_invalid_json": "JSON 无法解析",
    "root_label": "root"
  },
  "properties_json": {
    "lbl_properties": ".properties",
    "lbl_json": "JSON（字符串值 → properties）",
    "btn_to_json": "→ JSON",
    "btn_to_properties": "→ Properties",
    "footnote_flat": "嵌套对象不会展开为扁平 key；仅适合扁平字符串映射。",
    "err_failed": "失败"
  },
  "xml_format": {
    "lbl_xml": "XML",
    "btn_validate_indent": "校验并缩进",
    "err_parse_failed": "XML 解析失败",
    "err_failed": "失败"
  },
  "semver": {
    "lbl_a": "版本 A",
    "lbl_b": "版本 B",
    "btn_compare": "比较",
    "invalid": "无效",
    "err_parse_line": "解析失败：A={a}  B={b}",
    "cmp_before": "A 早于 B",
    "cmp_after": "A 晚于 B",
    "cmp_equal": "相等",
    "line_norm": "规范形式: A={a}  B={b}",
    "line_cmp": "比较: {rel}",
    "line_diff": "semver.diff: {diff}",
    "diff_same": "diff:（同版本）"
  },
  "mermaid": {
    "lbl_source": "Mermaid 源码",
    "btn_render": "渲染",
    "btn_rendering": "渲染中…",
    "err_render": "渲染失败"
  },
  "editorconfig": {
    "preset_web": "前端默认（2 空格）",
    "preset_py": "Python（4 空格）",
    "preset_go": "Go（Tab）"
  },
  "image_compress": {
    "intro_note": "图片压缩在浏览器本地完成，不上传服务器。尺寸与原图一致：PNG 在「与原图相同」且无缩放时使用 Oxipng（WASM）做无损重打包，通常比 canvas 再编码更小；JPG / WebP 仍按质量在画布上重编码。若同类格式下体积未下降则保留原文件。默认按每张原图格式输出，也可在下方统一指定。",
    "drop_desc": "设置格式与质量后，点击「开始压缩」批量导出（宽高与原图相同）。",
    "fmt_auto": "与原图相同",
    "fmt_jpeg": "统一 JPG",
    "fmt_webp": "统一 WebP",
    "fmt_png": "统一 PNG"
  },
  "image_exif": {
    "intro_note": "查看/清除均在浏览器本地完成。清除通过重新导出实现（更通用），会改变文件体积与格式。",
    "drop_desc": "在本地解析 EXIF，不会上传文件。",
    "empty_hint": "尚未选择图片。",
    "lbl_export_after_strip": "清除后导出格式",
    "opt_jpeg_rec": "JPG（推荐）",
    "opt_png": "PNG",
    "opt_webp": "WebP",
    "btn_strip": "清除 EXIF 并下载",
    "details_raw": "查看 EXIF 原始数据",
    "msg_no_exif": "未检测到 EXIF（或该格式不包含）。",
    "msg_read_fail": "读取失败",
    "msg_exported_clean": "已导出无元数据版本。",
    "msg_strip_fail": "处理失败"
  },
  "image_crop": {
    "intro_note": "在预览画布上按下并拖动框选裁切区域；也可在下方输入像素精确调整。处理在浏览器本地完成。",
    "drop_desc": "单张裁切，导出 PNG / JPG / WebP。",
    "empty_hint": "尚未选择图片。",
    "hint_canvas": "原图 {w}×{h} px — 在图上拖动框选",
    "lbl_left_x": "左 X",
    "lbl_top_y": "上 Y",
    "lbl_width": "宽",
    "lbl_height": "高",
    "btn_reset_full": "重置为整张图",
    "lbl_quality_short": "质量",
    "btn_export": "导出裁切",
    "msg_pick_area": "请先选择图片并框选区域。",
    "msg_exported": "已导出裁切结果。",
    "msg_export_fail": "导出失败"
  },
  "image_resize": {
    "intro_note": "改尺寸在浏览器本地完成。contain 为「完整显示 + 留白」，cover 为「铺满裁切」。",
    "drop_desc": "在下方设置尺寸与格式后，点击「开始处理」批量导出。"
  },
  "image_scale": {
    "intro_note": "按最长边、固定宽度或固定高度等比例缩放，长宽比不变。小于目标边时「最长边」模式保持原尺寸；指定宽/高模式可放大。处理在本地完成。",
    "drop_desc": "设置缩放方式与目标像素后批量导出。",
    "lbl_scale_by": "缩放依据",
    "mode_long_edge": "最长边（缩小至不超过目标，不放大）",
    "mode_width": "宽度（固定宽，高等比）",
    "mode_height": "高度（固定高，宽等比）",
    "dim_long_edge": "最长边上限（px）",
    "dim_width": "目标宽度（px）",
    "dim_height": "目标高度（px）",
    "lbl_quality_01": "质量（0.1-1）"
  },
  "image_transform": {
    "intro_note": "使用浏览器 Canvas 与 CSS filter（灰度/反色）在本地处理；导出 JPEG 时透明区域会铺白底。",
    "drop_desc": "支持常见光栅格式；设置变换后批量导出。",
    "lbl_rotate": "旋转",
    "rot_0": "不旋转",
    "rot_90": "顺时针 90°",
    "rot_180": "180°",
    "rot_270": "顺时针 270°",
    "lbl_export_fmt": "导出格式",
    "lbl_quality_short": "质量",
    "flip_h": "水平镜像",
    "flip_v": "垂直镜像",
    "filter_gray": "灰度",
    "filter_invert": "反色",
    "msg_need_transform": "请至少选择一项变换（旋转、镜像或滤镜）。",
    "msg_summary": "处理完成：{ok}/{total} 成功。",
    "btn_zip": "打包下载 ZIP"
  },
  "image_watermark": {
    "intro_note": "水印在浏览器本地叠加生成，不上传服务器。",
    "drop_desc": "设置文字水印后，批量导出带水印图。",
    "lbl_text": "水印文字",
    "lbl_position": "位置",
    "pos_tl": "左上",
    "pos_tr": "右上",
    "pos_bl": "左下",
    "pos_br": "右下",
    "pos_center": "居中",
    "lbl_color": "颜色",
    "lbl_font_size": "字号",
    "lbl_opacity": "透明度（0-1）",
    "lbl_padding": "边距（px）",
    "msg_empty_text": "水印文字不能为空。"
  },
  "image_collage": {
    "intro_note": "拼接在浏览器本地完成，建议图片数量不要太多（长图可能很大）。",
    "drop_label": "选择图片（按列表顺序拼接）",
    "drop_desc": "可一次多选；下方顺序即拼接顺序，可移除单张以调整。",
    "empty_hint": "尚未选择图片。选择或拖入后将按此顺序拼接。",
    "lbl_direction": "方向",
    "dir_vertical": "纵向（长图）",
    "dir_horizontal": "横向",
    "lbl_gap": "间距（px）",
    "msg_started": "已开始下载。"
  },
  "image_convert": {
    "page_intro": "常用栅格格式（含 <fmt>PNG、JPEG、WebP、GIF、BMP、ICO、AVIF</fmt> 等，取决于浏览器解码能力）与 <svg>SVG</svg> 可在本地互转。动图仅导出第一帧；导出 JPEG 时透明区域以白底填充；HEIC 等多数浏览器无法直接解码。",
    "common_uses_title": "常见用途",
    "common_use_li1": "网站素材统一为 WebP 或 PNG；打印/归档统一为 JPEG。",
    "common_use_li2": "把 SVG 栅格化为位图，便于在仅支持光栅的软件里使用。"
  },
  "image_convert_to_png": {
    "page_intro": "在本地将常见图片格式导出为 PNG。转换完全在您的设备上完成，无需上传到云端。适合需要统一成 PNG 流程、或下游仅接受 PNG 的场景。动图会按第一帧导出。",
    "common_notes_title": "常见说明",
    "common_notes_li1": "HEIC/部分手机专有格式在浏览器中可能无法解码，可先在系统里转为 JPG。",
    "common_notes_li2": "超大图会占用较多内存，若失败可缩小尺寸或分张处理。",
    "drop_subline": "多格式输入；输出始终为 PNG。"
  },
  "image_gif_to_png": {
    "drop_subline": "以 GIF 为主；输出为单帧 PNG。"
  },
  "image_jpg_to_png": {
    "page_intro": "<jpeg>JPEG</jpeg> 为有损压缩，转为 PNG 并不会「找回」已丢的细节，但会停止再次有损压缩，便于在需要 PNG 的编辑流或批处理中统一格式。也支持多选、拖拽。",
    "notes_title": "说明",
    "notes_body": "若原图为典型 JPEG，背景不透明；转为 PNG 后一般仍为全不透明，除非来源本身带透明（少见）。",
    "drop_subline": "以 JPG / JPEG 为主；可混合选择其他位图。输出为 PNG。"
  },
  "image_jpg_to_webp": {
    "drop_subline": "以 JPG / JPEG 为主，亦支持其它位图转 WebP。"
  },
  "image_png_to_jpg": {
    "drop_subline": "以 PNG 为主，亦支持其它位图转 JPG。"
  },
  "image_png_to_webp": {
    "drop_subline": "以 PNG 为主，亦支持其它位图转 WebP。"
  },
  "image_svg_to_png": {
    "drop_subline": "选择 .svg 文件；输出为 PNG。"
  },
  "image_webp_to_jpg": {
    "drop_subline": "以 WebP 为主，亦支持其它位图转 JPG。"
  },
  "image_webp_to_png": {
    "page_intro": "许多网站与 App 会输出体积更小的 <webp>WebP</webp> 图；当目标环境或设计稿流程只接受 PNG 时，可在此在本地将 WebP 转存为 PNG，再导入其他软件。支持一次选择多文件。",
    "tips_title": "小提示",
    "tips_body": "WebP 的透明、有损、无损在浏览器中解码后都会栅格为像素，再存为 PNG；与「另存为」在本地图形软件中的效果在多数场景下接近。",
    "drop_subline": "以 WebP 为主，亦兼容其他位图；输出统一为 PNG。"
  },
  "image_ico": {
    "intro_note": "在浏览器本地从一张图生成网站图标：选择一种正方形边长，下载 favicon.ico（内嵌 PNG，适用于现代浏览器与 Windows）。",
    "drop_desc": "选择边长后点击下载 favicon.ico。",
    "pick_label": "选择图片（建议 512×512 以上）",
    "empty_hint": "尚未选择图片。",
    "lbl_side": "输出边长（正方形）",
    "hint_one_size": "ICO 仅包含当前选中的这一档尺寸。",
    "err_pick_first": "请先选择图片。",
    "err_canvas": "无法创建画布上下文",
    "msg_download_started": "已开始下载 favicon.ico。",
    "msg_generate_fail": "生成失败",
    "page_intro": "选择一张大图（建议 512×512 或更大），选定输出边长后下载 <favicon>favicon.ico</favicon>。"
  },
  "image_ocr": {
    "intro_note": "自 CDN 加载 Tesseract worker、核心与语言包（首次较慢）。图片仅在浏览器内处理。",
    "lbl_langs": "语言（tesseract 语言码，如 eng、chi_sim、eng+chi_sim）",
    "lbl_image": "图片",
    "hdr_result": "识别结果",
    "prog_initializing": "初始化…",
    "prog_recognizing": "识别 {pct}%",
    "empty_result": "（未识别到文本）",
    "err_failed": "识别失败"
  },
  "bcrypt": {
    "text_label": "文本",
    "rounds_label": "轮数（4-31）",
    "generate": "生成哈希",
    "copy": "复制",
    "verify_hash_label": "待验证哈希",
    "verify": "验证",
    "match": "匹配",
    "not_match": "不匹配"
  },
  "sm3": {
    "text_label": "输入文本",
    "compute": "计算",
    "copy": "复制"
  },
  "sm4": {
    "key_label": "密钥（32位十六进制）",
    "text_label": "输入文本",
    "encrypt": "加密",
    "decrypt": "解密",
    "process": "执行",
    "copy": "复制",
    "error": "处理出错"
  },
  "sm2": {
    "generate_keypair": "生成密钥对",
    "public_key": "公钥",
    "private_key": "私钥",
    "text_label": "输入文本",
    "encrypt": "加密",
    "decrypt": "解密",
    "copy": "复制",
    "error": "处理出错"
  },
  "password_strength": {
    "password_label": "密码",
    "level_0": "弱",
    "level_1": "中",
    "level_2": "强",
    "level_3": "极强",
    "length": "长度",
    "crack_time": "估算破解时间",
    "lower": "小写",
    "upper": "大写",
    "digit": "数字",
    "special": "特殊字符"
  },
  "wifi_qr": {
    "ssid": "SSID",
    "password": "密码",
    "encryption": "加密类型",
    "none": "无",
    "generate": "生成二维码"
  },
  "json_to_go": {
    "struct_name": "结构体名称",
    "json_label": "输入 JSON",
    "convert": "转换",
    "copy": "复制",
    "parse_error": "JSON 解析失败"
  },
  "json_to_java": {
    "class_name": "类名",
    "json_label": "输入 JSON",
    "convert": "转换",
    "copy": "复制",
    "parse_error": "JSON 解析失败"
  },
  "json_to_sql": {
    "table_name": "表名",
    "json_label": "输入 JSON 数组",
    "convert": "转换",
    "copy": "复制",
    "parse_error": "JSON 解析失败",
    "not_array": "输入不是 JSON 数组"
  },
  "json_merge": {
    "json_a": "JSON A",
    "json_b": "JSON B",
    "merge": "合并",
    "copy": "复制",
    "parse_error": "JSON 解析失败"
  },
  "nginx_format": {
    "input_label": "输入 Nginx 配置",
    "format": "格式化",
    "copy": "复制"
  },
  "docker_to_compose": {
    "cmd_label": "输入 docker run 命令",
    "convert": "转换",
    "copy": "复制"
  },
  "regex_cheatsheet": {
    "copy": "复制",
    "copied": "已复制"
  },
  "faker": {
    "generate": "生成假数据"
  },
  "deobfuscate": {
    "input_label": "输入 JS 代码",
    "format": "格式化",
    "copy": "复制"
  },
  "text_pinyin": {
    "input_label": "输入中文",
    "copy": "复制"
  },
  "text_zh_convert": {
    "s2t": "简→繁",
    "t2s": "繁→简",
    "input_label": "输入文本",
    "copy": "复制"
  },
  "text_mask": {
    "input_label": "输入文本",
    "keep_first": "保留前N位",
    "keep_last": "保留后N位",
    "mask_char": "掩码字符",
    "copy": "复制"
  },
  "text_emoji": {
    "search_placeholder": "搜索 Emoji…",
    "copied": "已复制"
  },
  "text_synonym": {
    "input_label": "输入词语",
    "synonyms": "近义词",
    "antonyms": "反义词",
    "not_found": "词库中未找到"
  },
  "totp": {
    "secret_label": "密钥（Base32）",
    "remaining": "剩余 {sec}s"
  },
  "basic_auth": {
    "username": "用户名",
    "password": "密码",
    "copy": "复制"
  },
  "cookie_parse": {
    "input_label": "输入 Cookie 字符串",
    "key": "键",
    "value": "值"
  },
  "jwt_generate": {
    "header": "Header（JSON）",
    "payload": "Payload（JSON）",
    "secret": "密钥",
    "generate": "生成 JWT",
    "copy": "复制",
    "error": "生成失败"
  },
  "svg_placeholder": {
    "width": "宽度",
    "height": "高度",
    "text": "文字",
    "fg": "前景色",
    "bg": "背景色",
    "copy_svg": "复制 SVG",
    "copy_data_url": "复制 Data URL"
  },
  "stopwatch": {
    "start": "开始",
    "pause": "暂停",
    "resume": "继续",
    "lap": "计次",
    "reset": "重置",
    "lap_n": "第 {n} 次"
  },
  "date_calc": {
    "add_days": "加减天数",
    "date_diff": "日期间隔",
    "date1": "日期",
    "date2": "日期2",
    "days": "天数",
    "calc": "计算"
  },
  "percentage": {
    "mode_of": "X的Y%",
    "mode_is": "X是Y的百分之几",
    "mode_change": "变化率",
    "percent": "百分比",
    "of_value": "数值",
    "value": "值",
    "total": "总量",
    "from": "原值",
    "to": "新值"
  },
  "temperature": {
    "value": "温度值"
  },
  "roman_numeral": {
    "to_roman": "→ 罗马数字",
    "from_roman": "→ 阿拉伯数字",
    "arabic": "阿拉伯数字",
    "roman": "罗马数字"
  },
  "image_greyscale": {
    "process": "转灰度",
    "download": "下载"
  },
  "image_nine_grid": {
    "process": "九宫格裁剪"
  },
  "mac_lookup": {
    "input_label": "输入 MAC 地址",
    "not_found": "未找到厂商"
  },
  "ipv4_range": {
    "start": "起始 IP",
    "end": "结束 IP"
  },
  "port_reference": {
    "port": "端口",
    "proto": "协议",
    "name": "名称"
  },
  "math_eval": {
    "placeholder": "输入表达式，如 2^10 + sqrt(16)",
    "calc": "计算",
    "preview": "预览",
    "supported": "支持的运算",
    "history": "历史记录",
    "clear": "清空"
  },
  "eta_calc": {
    "total": "总量",
    "done": "已完成",
    "elapsed": "已用时",
    "elapsed_unit": "秒",
    "speed": "速度",
    "speed_unit": "个/秒",
    "remaining": "预计剩余",
    "total_time": "预计总时间"
  },
  "mac_gen": {
    "count": "数量",
    "separator": "分隔符",
    "prefix": "前缀（可选）",
    "uppercase": "大写",
    "generate": "生成",
    "results": "结果",
    "copy_all": "全部复制"
  },
  "device_info": {
    "note": "检测当前浏览器环境信息。",
    "property": "属性",
    "value": "值"
  },
  "bip39": {
    "strength": "熵值位数",
    "generate": "生成",
    "loading": "加载中…",
    "mnemonic": "助记词",
    "copy": "复制",
    "error": "生成失败"
  },
  "rsa_keygen": {
    "key_size": "密钥长度",
    "generate": "生成密钥对",
    "generating": "生成中…",
    "public_key": "公钥 (PEM)",
    "private_key": "私钥 (PEM)",
    "copy": "复制"
  },
  "xml_json": {
    "input": "输入",
    "output": "输出",
    "convert": "转换",
    "copy": "复制"
  },
  "json_minify": {
    "input": "输入 JSON",
    "minify": "最小化",
    "output": "输出",
    "copy": "复制",
    "original": "原始大小",
    "minified_size": "压缩后",
    "saved": "节省"
  },
  "numeronym": {
    "encode": "编码",
    "decode": "解码",
    "examples": "常见示例"
  },
  "ascii_art": {
    "text": "文字",
    "char_set": "填充字符",
    "result": "结果",
    "copy": "复制",
    "hint": "支持英文字母、数字和部分标点，最多 30 个字符。"
  },
  "idcard": {
    "input_label": "输入身份证号",
    "valid": "有效",
    "invalid": "无效",
    "province": "省份",
    "birthday": "生日",
    "gender": "性别",
    "male": "男",
    "female": "女",
    "unknown": "未知"
  },
  "chinese_colors": {
    "copied": "已复制"
  },
  "relationship": {
    "input_label": "输入关系链（如：父,母）",
    "placeholder": "父,母",
    "unknown": "未知关系"
  },
  "curl_to_code": {
    "input_label": "cURL 命令",
    "lang_label": "目标语言",
    "convert": "转换",
    "output": "输出代码",
    "copy": "复制",
    "copied": "已复制",
    "err_parse": "无法解析 cURL 命令"
  },
  "box_shadow": {
    "layer": "层",
    "remove": "删除",
    "offsetX": "X 偏移",
    "offsetY": "Y 偏移",
    "blur": "模糊",
    "spread": "扩展",
    "color": "颜色",
    "add_layer": "添加阴影层",
    "preview": "预览",
    "copy": "复制",
    "copied": "已复制"
  },
  "border_radius": {
    "top_left": "左上",
    "top_right": "右上",
    "bottom_right": "右下",
    "bottom_left": "左下",
    "preview": "预览",
    "copy": "复制",
    "copied": "已复制"
  },
  "flexbox": {
    "direction": "flex-direction",
    "justify_content": "justify-content",
    "align_items": "align-items",
    "flex_wrap": "flex-wrap",
    "gap": "gap",
    "add_child": "添加子元素",
    "remove_child": "删除子元素",
    "preview": "预览",
    "copy": "复制",
    "copied": "已复制"
  },
  "gradient": {
    "type": "渐变类型",
    "angle": "角度",
    "color_stops": "色标",
    "remove": "删除",
    "add_stop": "添加色标",
    "preview": "预览",
    "copy": "复制",
    "copied": "已复制"
  },
  "css_animation": {
    "preset": "预设动画",
    "duration": "时长(s)",
    "timing": "缓动",
    "iteration": "次数",
    "keyframes": "关键帧",
    "preview": "预览",
    "copy": "复制",
    "copied": "已复制"
  },
  "color_blindness": {
    "input_color": "输入颜色",
    "original": "原始",
    "palette": "调色板预览"
  },
  "token_count": {
    "input_label": "输入文本",
    "placeholder": "在此输入文本以估算 Token 数量…",
    "chars": "字符",
    "words": "词",
    "lines": "行",
    "estimate": "Token 估算",
    "tokens": "tokens",
    "of_context": "上下文占比",
    "disclaimer": "※ 此为近似估算，实际 Token 数取决于具体分词器。中文约 1.5 token/字，英文约 1.0-1.3 token/词。"
  },
  "screenshot_beautify": {
    "upload": "上传截图",
    "bg_color": "背景色",
    "padding": "内边距",
    "border_radius": "圆角",
    "shadow_blur": "阴影模糊",
    "shadow_color": "阴影颜色",
    "preview": "预览",
    "no_image": "请先上传截图",
    "export_png": "导出 PNG"
  },
  "pangu_spacing": {
    "input_label": "输入文本",
    "placeholder": "你好world，这是123test文本",
    "output": "转换结果",
    "copy": "复制",
    "copied": "已复制"
  },
  "aspect_ratio": {
    "width": "宽度",
    "height": "高度",
    "calc_ratio": "计算宽高比",
    "common_ratios": "常见比例",
    "reverse_calc": "反向计算",
    "ratio_w": "比例 W",
    "ratio_h": "比例 H",
    "known_side": "已知边",
    "known_value": "已知值",
    "result": "结果"
  },
  "loan_calc": {
    "principal": "贷款总额（元）",
    "annual_rate": "年利率（%）",
    "term": "贷款年限",
    "term_half_year": "半年 ({months}期)",
    "term_years": "{years}年 ({months}期)",
    "method": "还款方式",
    "equal_installment": "等额本息",
    "equal_principal": "等额本金",
    "monthly_payment": "月供",
    "total_interest": "总利息",
    "total_payment": "还款总额",
    "schedule": "还款计划",
    "month": "期数",
    "payment": "月供",
    "principal_part": "本金",
    "interest_part": "利息",
    "remaining": "剩余"
  },
  "bmi": {
    "height": "身高",
    "weight": "体重",
    "underweight": "偏瘦",
    "normal": "正常",
    "overweight": "偏胖",
    "obese": "肥胖",
    "range_chart": "BMI 范围图"
  },
  "work_hours": {
    "start_time": "上班时间",
    "end_time": "下班时间",
    "lunch_break": "午休时间",
    "minutes": "分钟",
    "standard_hours": "标准工时",
    "total_time": "总时长",
    "work_time": "工作时长",
    "overtime": "加班时长",
    "salary_estimate": "薪资估算",
    "hourly_rate": "时薪",
    "regular_pay": "正常薪资",
    "overtime_pay": "加班薪资",
    "total_pay": "合计",
    "hour": "小时",
    "minute": "分钟"
  },
  "template_filler": {
    "template_label": "模板文本",
    "template_placeholder": "输入模板，如：你好，'{' '{' 'name' '}' '}'！",
    "variables": "变量",
    "fill_data": "填充数据",
    "add_row": "添加一组",
    "row": "组",
    "remove_row": "删除",
    "result": "结果",
    "copy": "复制",
    "copied": "已复制"
  },
  "url_defang": {
    "defang": "脱敏(Defang)",
    "refang": "还原(Refang)",
    "input_label": "输入 URL",
    "output": "输出",
    "copy": "复制",
    "copied": "已复制",
    "rules": "替换规则",
    "rule1": ":// → [://]",
    "rule2": ". → [.]",
    "rule3": "还原为反向操作"
  },
  "protobuf_decode": {
    "decode": "解码",
    "invalid_hex": "无效的十六进制输入",
    "result": "解析结果",
    "field": "字段",
    "wire_type": "类型",
    "value": "值",
    "unknown_wire": "未知线型"
  },
  "pdf_signature": {
    "upload": "上传 PDF",
    "checking": "检查中…",
    "signed": "已签名",
    "not_signed": "未签名",
    "file": "文件",
    "pages": "页数",
    "parse_error": "PDF 解析失败"
  },
  "dev_string_obfuscator": {
    "input_label": "输入代码",
    "input_placeholder": "粘贴包含字符串字面量的 JavaScript 代码…",
    "method_label": "混淆方式",
    "method_base64": "Base64",
    "method_hex": "Hex",
    "method_unicode": "Unicode",
    "method_charcode": "CharCode",
    "method_reverse": "反转",
    "obfuscate": "混淆",
    "output": "混淆结果",
    "copy": "复制",
    "copied": "已复制"
  },
  "web_safelink_decode": {
    "input_label": "输入 SafeLink URL",
    "input_placeholder": "粘贴 Outlook SafeLink URL…",
    "decode": "解码",
    "original_url": "原始 URL",
    "copy": "复制",
    "copied": "已复制",
    "err_not_safelink": "不是有效的 Outlook SafeLink",
    "err_no_url_param": "SafeLink 中缺少 `url` 查询参数",
    "err_invalid_url": "无法解析该 URL"
  },
  "dev_git_cheatsheet": {
    "category_basic": "基础操作",
    "category_branch": "分支管理",
    "category_remote": "远程仓库",
    "category_undo": "撤销回退",
    "category_stash": "暂存",
    "category_log": "日志查看",
    "copy": "复制",
    "copied": "已复制",
    "click_copy": "点击复制"
  },
  "email_normalizer": {
    "input_label": "输入邮箱地址",
    "input_placeholder": "每行一个邮箱地址…",
    "normalize": "规范化",
    "output": "规范化结果",
    "copy": "复制",
    "copied": "已复制",
    "col_original": "原始",
    "col_normalized": "规范化后",
    "remove_dots": "移除 Gmail 点号",
    "remove_plus": "移除 +别名",
    "lowercase": "转为小写"
  },
  "html_wysiwyg": {
    "bold": "加粗",
    "italic": "斜体",
    "underline": "下划线",
    "strikethrough": "删除线",
    "ordered_list": "有序列表",
    "unordered_list": "无序列表",
    "mode_edit": "可视化",
    "source_view": "源码视图",
    "preview": "预览",
    "copy_html": "复制 HTML",
    "copied": "已复制",
    "prompt_url": "链接地址",
    "prompt_img_url": "图片地址"
  },
  "dev_benchmark": {
    "add_snippet": "添加代码片段",
    "snippet_label": "代码片段 {n}",
    "iterations_label": "迭代次数",
    "run": "运行基准测试",
    "running": "运行中…",
    "result": "结果",
    "avg_time": "平均耗时",
    "rank": "排名",
    "copy": "复制",
    "placeholder_name": "片段名称",
    "placeholder_code": "要测试的 JavaScript 代码…",
    "err_run": "基准测试执行失败",
    "col_snippet": "片段",
    "col_bar": "相对耗时"
  },
  "dev_css_unit_converter": {
    "context_title": "像素基准",
    "input_title": "输入",
    "value_label": "输入值",
    "from_unit": "源单位",
    "results_title": "换算结果",
    "col_unit": "单位",
    "col_value": "数值",
    "base_size_label": "基准字号（px）",
    "viewport_width": "视口宽度（px）",
    "viewport_height": "视口高度（px）",
    "result": "转换结果",
    "copy": "复制",
    "copied": "已复制"
  },
  "random_port": {
    "count_label": "生成数量",
    "min_label": "最小端口",
    "max_label": "最大端口",
    "exclude_system": "排除系统保留端口（0–1023）",
    "generate": "生成",
    "copy": "复制",
    "copied": "已复制",
    "output": "结果",
    "click_copy": "点击复制"
  },
  "ipv6_ula": {
    "mac_label": "MAC 地址（可选）",
    "mac_placeholder": "如 aa:bb:cc:dd:ee:ff",
    "generate": "生成 ULA",
    "prefix": "ULA 前缀",
    "copy": "复制",
    "copied": "已复制"
  },
  "ipv4_converter": {
    "input_label": "输入 IPv4 地址",
    "input_placeholder": "如 192.168.1.1",
    "dotted_decimal": "点分十进制",
    "decimal": "十进制整数",
    "hexadecimal": "十六进制",
    "binary": "二进制",
    "octal": "八进制",
    "copy": "复制",
    "copied": "已复制",
    "err_invalid": "无效的 IPv4 地址"
  },
  "web_meta_tag_generator": {
    "general": "基础 Meta",
    "title_label": "标题（Title）",
    "description_label": "描述（Description）",
    "viewport_label": "Viewport",
    "charset_label": "Charset",
    "author_label": "作者（Author）",
    "keywords_label": "关键词（Keywords）",
    "robots_label": "Robots",
    "og_title": "OG Title",
    "og_description": "OG Description",
    "og_image": "OG Image URL",
    "og_url": "OG URL",
    "twitter_card": "Twitter Card 类型",
    "generate": "生成",
    "output": "Meta 标签代码",
    "preview": "预览",
    "copy": "复制",
    "copied": "已复制"
  },
  "encode_unicode": {
    "input_label": "输入文本",
    "output_label": "输出",
    "encode": "编码",
    "decode": "解码",
    "format_label": "格式",
    "format_backslash_u": "\\uXXXX",
    "format_html_entity": "&#xXXXX;",
    "copy": "复制",
    "copied": "已复制",
    "decode_failed": "解码失败"
  },
  "encode_quoted_printable": {
    "input_label": "输入",
    "output_label": "输出",
    "line_len": "最大行长度",
    "encode": "编码",
    "decode": "解码",
    "copy": "复制",
    "copied": "已复制",
    "encode_failed": "编码失败",
    "decode_failed": "解码失败",
    "err_decode": "Quoted-Printable 解码失败"
  },
  "encode_uuencode": {
    "input_label": "输入",
    "output_label": "输出",
    "encode": "UUEncode",
    "decode": "UUDecode",
    "filename_label": "文件名",
    "mode": "文件权限（如 644）",
    "copy": "复制",
    "copied": "已复制",
    "encode_failed": "编码失败",
    "decode_failed": "解码失败",
    "err_decode": "UUDecode 失败"
  },
  "encode_base85": {
    "input_label": "输入",
    "input_mode": "输入模式",
    "mode_text": "文本（UTF-8）",
    "mode_hex": "十六进制字节",
    "delimiters": "使用 &lt;~ ~&gt; 包裹",
    "output_label": "输出",
    "encode": "编码",
    "decode": "解码",
    "copy": "复制",
    "copied": "已复制",
    "invalid_hex": "十六进制无效",
    "encode_failed": "编码失败",
    "decode_failed": "解码失败",
    "err_decode": "Base85 解码失败"
  },
  "camera_recorder": {
    "select_device": "摄像头设备",
    "default": "默认",
    "start_camera": "开启摄像头",
    "stop_camera": "关闭摄像头",
    "take_photo": "拍照",
    "start_record": "开始录制",
    "stop_record": "停止录制",
    "pause": "暂停",
    "resume": "继续",
    "recording": "正在录制…",
    "paused": "已暂停",
    "photo_result": "照片",
    "video_result": "视频",
    "export_photo": "导出 PNG",
    "export_video": "导出 WebM",
    "no_camera": "无法访问摄像头"
  },
  "docs_cheatsheet": {
    "title_label": "速查表标题",
    "add_category": "添加分类",
    "category_label": "分类名称",
    "content_label": "内容（Markdown）",
    "preview": "预览",
    "export": "导出",
    "export_md": "导出 Markdown",
    "export_html": "导出 HTML",
    "remove": "删除",
    "entry_title": "条目标题",
    "add_entry": "添加条目",
    "copy": "复制",
    "copied": "已复制"
  },
  "text_regex_memo": {
    "category_chars": "字符类",
    "category_quantifiers": "量词",
    "category_anchors": "锚点",
    "category_groups": "分组与引用",
    "category_lookaround": "断言（ lookahead / lookbehind ）",
    "category_flags": "标志位",
    "copy": "复制",
    "click_copy": "点击复制",
    "copied": "已复制"
  },
  "dev_git_diff_viewer": {
    "input_label": "粘贴 diff 输出",
    "input_placeholder": "粘贴 git diff 输出文本…",
    "parse": "解析",
    "files_changed": "变更文件",
    "additions": "增加",
    "deletions": "删除",
    "changes": "修改",
    "err_parse": "无法解析 diff 输出"
  },
  "web_url_query_editor": {
    "url_label": "输入 URL",
    "url_placeholder": "https://example.com?key=value&foo=bar",
    "parse": "解析",
    "url_encode": "生成时使用 URL 编码",
    "params": "查询参数",
    "result": "生成结果 URL",
    "key": "键",
    "value": "值",
    "add_param": "添加参数",
    "remove_param": "删除",
    "preview": "预览 URL",
    "copy": "复制",
    "copied": "已复制",
    "err_invalid_url": "无效的 URL"
  },
  "tax_calc": {
    "income_label": "税前月薪（元）",
    "social_label": "五险一金（月，元）",
    "special_label": "专项附加扣除（月，元）",
    "calc": "计算",
    "taxable": "月应纳税所得额：",
    "annual_taxable": "年应纳税所得额：",
    "rate": "适用税率：",
    "monthly_tax": "月应扣税额：",
    "annual_tax": "年应扣税额：",
    "after_tax": "税后月薪："
  },
  "coord_convert": {
    "lng_label": "经度 (lng)",
    "lat_label": "纬度 (lat)",
    "from_label": "源坐标系",
    "to_label": "目标坐标系",
    "convert": "转换",
    "result_label": "结果",
    "copy": "复制"
  },
  "sensitive_words": {
    "placeholder": "粘贴公文、新闻稿、通告等待审文本…",
    "check": "严格检测",
    "found_prefix": "发现违禁词（共 {count} 类）：",
    "col_word": "违禁词",
    "col_count": "出现次数",
    "no_found": "词库未命中，但仍须人工终审后方可发布。",
    "bank_count": "政府严格词库：{count} 条（政治安全、违法违规、极限词、规避变体等）",
    "mode_hint": "已启用规避检测：自动去除空格、零宽字符并归一化全角字符后二次扫描。",
    "disclaimer": "本工具不能替代机关保密审查、定密程序与人工终审；未发现命中不代表内容可发布。",
    "custom_dict_title": "自定义词库",
    "custom_dict_hint": "上传 UTF-8 文本，每行一个词；以 # 开头的行为注释。词库保存在本机浏览器，不会上传服务器。",
    "upload_dict": "上传词库 (.txt)",
    "upload_txt": "上传待检文本 (.txt)",
    "clear_custom": "清空自定义词库",
    "custom_bank_count": "自定义 {count} 条",
    "active_bank_count": "当前生效 {count} 条",
    "source_file": "来源文件",
    "highlight_title": "命中高亮预览",
    "col_position": "首次出现位置",
    "dict_imported": "已导入 {count} 条自定义词",
    "dict_cleared": "已清空自定义词库",
    "err_dict_empty": "词库文件为空或格式无效",
    "err_dict_parse": "词库文件读取失败",
    "err_txt_read": "文本文件读取失败"
  },
  "signature": {
    "color_label": "笔触颜色",
    "width_label": "笔触粗细",
    "export": "导出 PNG",
    "clear": "清除"
  },
  "subtitle_convert": {
    "from_fmt": "源格式",
    "to_fmt": "目标格式",
    "input_placeholder": "粘贴字幕内容…",
    "convert": "转换",
    "output": "输出",
    "copy": "复制"
  },
  "htpasswd": {
    "username_label": "用户名",
    "password_label": "密码",
    "algorithm_label": "算法",
    "add": "添加",
    "copy": "复制全部"
  },
  "gcd_lcm": {
    "input_label": "输入数字（逗号分隔）",
    "input_placeholder": "如 12, 18, 24",
    "calc": "计算"
  },
  "periodic_table": {
    "atomic_number": "原子序数：",
    "atomic_mass": "相对原子质量：",
    "category": "分类："
  },
  "danmaku": {
    "text_label": "弹幕文字",
    "color_label": "颜色",
    "speed_label": "速度",
    "send": "发送"
  },
  "teleprompter": {
    "placeholder": "输入台词或脚本内容…",
    "speed_label": "速度",
    "font_size_label": "字号",
    "mirror_label": "镜像翻转",
    "play": "开始播放",
    "stop": "停止",
    "pause": "暂停"
  },
  "batch_rename": {
    "add_files": "添加文件",
    "prefix_label": "前缀",
    "start_num_label": "起始序号",
    "pad_len_label": "补零位数",
    "ext_label": "扩展名",
    "col_original": "原文件名",
    "col_renamed": "新文件名",
    "copy": "复制列表"
  },
  "bankcard_bin": {
    "card_label": "银行卡号",
    "placeholder": "输入至少6位卡号",
    "query": "查询",
    "bank_label": "发卡行：",
    "type_label": "卡类型：",
    "not_found": "未找到对应银行信息。"
  },
  "gif_frames": {
    "hint": "上传 GIF 文件以提取帧",
    "frame_count": "帧数："
  },
  "code_screenshot": {
    "lang_label": "语言",
    "bg_label": "背景色",
    "export": "导出 PNG"
  },
  "grid_paper": {
    "type_label": "格子类型",
    "type_tian": "田字格",
    "type_mi": "米字格",
    "type_fang": "方格纸",
    "type_dot": "点阵纸",
    "cell_size_label": "格大小 (px)",
    "rows_label": "行数",
    "cols_label": "列数",
    "generate": "生成",
    "export": "导出 PNG"
  },
  "exchange_rate": {
    "amount_label": "金额",
    "from_label": "源货币",
    "to_label": "目标货币",
    "convert": "换算",
    "disclaimer": "汇率为内置离线参考值，仅供参考。"
  },
  "hanzi_decompose": {
    "placeholder": "输入汉字…",
    "decompose": "拆字",
    "unknown": "未收录"
  },
  "audio_editor": {
    "start_label": "起始 (秒)",
    "end_label": "结束 (秒)",
    "duration": "总时长：",
    "clip": "裁剪并导出 WAV"
  },
  "csr_generate": {
    "key_size": "密钥长度",
    "generate": "生成",
    "private_key": "私钥"
  },
  "torrent_analyze": {
    "parse_error": "解析失败，请确认是有效的 .torrent 文件。",
    "name_label": "名称：",
    "total_size": "总大小：",
    "piece_length": "分片大小：",
    "info_hash": "Info Hash：",
    "files_label": "文件列表：",
    "trackers": "Tracker：",
    "magnet_link": "磁力链接：",
    "copy": "复制"
  },
  "pdf_encrypt": {
    "drop_label": "选择 PDF",
    "drop_desc": "为未加密 PDF 设置打开密码",
    "empty_pdf": "尚未选择 PDF",
    "password_label": "打开密码",
    "confirm_label": "确认密码",
    "btn_encrypt": "加密并下载",
    "msg_select_first": "请先选择 PDF 文件。",
    "msg_password_required": "请输入密码。",
    "msg_password_mismatch": "两次输入的密码不一致。",
    "msg_done": "已生成加密 PDF 并开始下载。",
    "err_encrypted_or_invalid": "无法读取该 PDF（可能已加密、已损坏或格式不支持）。若已有密码，请先用「PDF 解密」处理。",
    "err_failed": "加密失败，请换用 Chrome / Edge 重试。"
  },
  "heic_to_jpg": {
    "hint": "HEIC/HEIF 在浏览器内解码为 JPG，文件不会上传到服务器。",
    "drop_label": "HEIC / HEIF 图片",
    "drop_desc": "支持 .heic、.heif，可多选",
    "empty": "尚未选择 HEIC 文件",
    "quality_label": "JPG 质量（0.5–1）",
    "btn_convert": "转换为 JPG",
    "msg_select": "请先选择 HEIC/HEIF 图片。",
    "msg_done": "转换完成，已开始下载。",
    "err_convert": "无法解码该 HEIC 文件。",
    "err_failed": "转换失败，请换用 Chrome / Edge 重试。"
  },
  "word_count": {
    "hint": "输入或粘贴文本后自动统计，数据仅在本地计算。"
  },
  "age_calc": {
    "birth_label": "出生日期",
    "ref_label": "计算截止日期（可选）",
    "ref_hint": "留空则按今天计算",
    "years": "周岁（年）",
    "months": "月",
    "days": "天",
    "total_days": "总天数",
    "err_invalid_birth": "出生日期无效",
    "err_ref_before_birth": "截止日期不能早于出生日期"
  },
  "random_number": {
    "min": "最小值",
    "max": "最大值",
    "count": "生成数量（1–500）",
    "integer": "仅整数",
    "generate": "生成",
    "copy": "复制全部",
    "output": "结果",
    "err_range": "整数模式下最小值不能大于最大值",
    "copied": "已复制到剪贴板。"
  },
  "caesar": {
    "input_text": "输入文本",
    "shift": "偏移量 (1-25)",
    "mode": "模式",
    "encrypt": "加密",
    "decrypt": "解密",
    "run": "执行",
    "result": "结果"
  },
  "des": {
    "input_text": "输入文本/十六进制",
    "key": "密钥 (≥8字节)",
    "mode": "模式",
    "action": "操作",
    "encrypt": "加密",
    "decrypt": "解密",
    "run": "执行",
    "result": "结果",
    "key_too_short": "密钥至少8字节",
    "invalid_hex": "十六进制长度不是16的倍数"
  },
  "ripemd": {
    "input_text": "输入文本",
    "compute": "计算",
    "result": "RIPEMD-160 哈希"
  },
  "bcc_lrc": {
    "input_hex": "输入十六进制数据（空格分隔）",
    "mode": "校验模式",
    "compute": "计算",
    "result": "结果",
    "invalid_hex": "无效的十六进制字节",
    "no_data": "请输入数据"
  },
  "iso_garble": {
    "input": "乱码文本",
    "fix": "修复",
    "result": "修复结果",
    "not_iso": "包含非 ISO-8859-1 字符",
    "decode_failed": "UTF-8 解码失败"
  },
  "emoji_encode": {
    "input": "输入文本",
    "mode": "编码方式",
    "core_values": "核心价值观",
    "action": "操作",
    "encode": "编码",
    "decode": "解码",
    "run": "执行",
    "result": "结果",
    "decode_failed": "解码失败"
  },
  "code_playground": {
    "preview": "预览"
  },
  "dir_tree": {
    "input": "目录路径（每行一个）",
    "generate": "生成",
    "result": "目录树"
  },
  "kv_to_code": {
    "input": "键值对（key=value，每行一个）",
    "language": "目标语言",
    "convert": "转换",
    "result": "代码"
  },
  "file_hash": {
    "algorithm": "哈希算法",
    "drop_here": "拖拽文件到此处",
    "browse": "浏览文件"
  },
  "endianness": {
    "input_hex": "输入十六进制字节",
    "from": "输入端序",
    "to": "输出端序",
    "convert": "转换",
    "result": "结果"
  },
  "ones_complement": {
    "decimal": "十进制整数",
    "bits": "位数",
    "compute": "计算",
    "original": "原码",
    "ones": "反码",
    "twos": "补码"
  },
  "ssl_generate": {
    "key_type": "密钥类型",
    "generate": "生成",
    "public_key": "公钥",
    "private_key": "私钥",
    "fingerprint": "SHA-256 指纹"
  },
  "url_batch": {
    "template": "URL 模板（{id} 或 {param} 占位符）",
    "params": "参数列表（每行一个）",
    "generate": "生成",
    "result": "结果"
  },
  "line_filter": {
    "input": "输入文本",
    "min_len": "最小长度",
    "max_len": "最大长度",
    "action": "操作",
    "filter": "过滤",
    "truncate": "截断",
    "pad": "填充",
    "run": "执行",
    "result": "结果"
  },
  "tts": {
    "input": "输入文本",
    "voice": "语音",
    "rate": "语速",
    "volume": "音量",
    "play": "播放",
    "pause": "暂停",
    "stop": "停止",
    "speaking": "正在播放..."
  },
  "whois": {
    "domain": "域名",
    "query": "查询",
    "querying": "查询中...",
    "result": "结果"
  },
  "dns_query": {
    "domain": "域名",
    "record_type": "记录类型",
    "query": "查询",
    "querying": "查询中...",
    "result": "结果"
  },
  "icp_query": {
    "domain": "域名",
    "query": "查询",
    "querying": "查询中...",
    "result": "结果",
    "api_error": "API 请求失败"
  },
  "my_ip": {
    "query": "查询我的 IP",
    "querying": "查询中..."
  },
  "browser_fingerprint": {
    "ua": "User-Agent",
    "language": "语言",
    "languages": "语言列表",
    "platform": "平台",
    "cookies": "Cookie",
    "do_not_track": "Do Not Track",
    "screen_res": "屏幕分辨率",
    "avail_res": "可用分辨率",
    "color_depth": "色深",
    "pixel_depth": "像素深度",
    "device_pixel_ratio": "设备像素比",
    "timezone": "时区",
    "timezone_offset": "时区偏移",
    "max_touch": "触控点",
    "hardware_concurrency": "CPU 核心",
    "memory": "内存",
    "canvas": "Canvas 指纹"
  },
  "doh": {
    "domain": "域名",
    "server": "DoH 服务器",
    "query": "查询",
    "querying": "查询中...",
    "result": "结果"
  },
  "placeholder_img": {
    "width": "宽度",
    "height": "高度",
    "bg": "背景色",
    "fg": "前景色",
    "text": "文本",
    "generate": "生成",
    "download": "下载"
  },
  "privacy_policy": {
    "app_name": "应用名称",
    "developer": "开发者",
    "collect_types": "收集数据类型",
    "generate": "生成",
    "result": "隐私政策",
    "title": "隐私政策",
    "default_types": "设备信息、位置信息、使用日志",
    "section1_title": "一、信息收集",
    "section1_body": "{appName} 由 {developer} 开发运营。我们收集以下信息以提供和改善服务。",
    "section2_title": "二、信息使用",
    "section2_body": "{appName} 收集的 {types} 仅用于应用功能运营和改善体验，不会出售给第三方。",
    "section3_title": "三、信息安全",
    "section3_body": "我们采取合理措施保护您的个人信息安全。",
    "section4_title": "四、您的权利",
    "section4_body": "您有权访问、更正、删除您的个人信息。",
    "section5_title": "五、联系方式",
    "section5_body": "如有疑问请联系 {developer}。"
  },
  "pomodoro": {
    "work": "工作中",
    "break": "休息中",
    "start": "开始",
    "pause": "暂停",
    "reset": "重置",
    "work_min": "工作(分)",
    "break_min": "休息(分)",
    "completed": "已完成"
  },
  "art_qr": {
    "text": "文本/URL",
    "fg": "前景色",
    "bg": "背景色",
    "style": "点样式",
    "square": "方点",
    "circle": "圆点",
    "generate": "生成",
    "download": "下载"
  },
  "ppi_calc": {
    "diagonal": "对角线(英寸)",
    "horizontal": "水平像素",
    "vertical": "垂直像素",
    "compute": "计算",
    "result": "PPI"
  },
  "mortgage_calc": {
    "principal": "贷款金额(元)",
    "rate": "年利率(%)",
    "years": "贷款年限",
    "method": "还款方式",
    "equal_payment": "等额本息",
    "equal_principal": "等额本金",
    "compute": "计算",
    "monthly": "月供",
    "total": "总还款",
    "interest": "总利息",
    "first_month": "首月月供"
  },
  "gb_code": {
    "search": "搜索字符或编码"
  },
  "solar_lunar": {
    "year": "年",
    "month": "月",
    "day": "日",
    "convert": "转换"
  },
  "world_clock": {},
  "chem_balance": {
    "input": "化学方程式（如 H2+O2=H2O）",
    "balance": "配平"
  },
  "mic_test": {
    "enumerate": "枚举设备",
    "default": "默认设备",
    "device": "设备",
    "status_label": "状态",
    "status_idle": "空闲",
    "status_granted": "已授权",
    "status_denied": "已拒绝",
    "status_recording": "录音中",
    "status_playing": "播放中",
    "record": "开始录音",
    "stop": "停止录音",
    "play": "播放录音",
    "download": "下载录音",
    "duration": "时长",
    "volume": "音量"
  },
  "keyboard_test": {
    "hint": "请在页面上按下键盘按键进行测试",
    "current": "当前按键",
    "history": "按键历史"
  },
  "screen_test": {
    "color_red": "红色",
    "color_green": "绿色",
    "color_blue": "蓝色",
    "color_white": "白色",
    "color_black": "黑色",
    "click_exit": "点击或按 ESC 退出全屏",
    "screen_info": "屏幕信息",
    "resolution": "分辨率",
    "available": "可用区域",
    "pixel_ratio": "像素比",
    "esc_hint": "按 ESC 键退出全屏模式"
  },
  "pfx_to_pem": {
    "select_file": "选择 PFX/P12 文件",
    "password": "密码",
    "parse": "解析",
    "parsing": "解析中...",
    "cert_pem": "证书 PEM",
    "key_pem": "私钥 PEM",
    "download": "下载",
    "parse_error": "解析失败",
    "no_content": "未找到证书或私钥",
    "forge_required": "需要 node-forge 库支持"
  },
  "http_request": {
    "headers": "请求头",
    "add_header": "添加请求头",
    "body": "请求体",
    "send": "发送",
    "sending": "发送中...",
    "cors_warning": "注意：浏览器 CORS 策略可能限制部分请求，仅支持允许跨域的接口",
    "status": "状态码",
    "status_text": "状态文本",
    "time": "耗时",
    "response_headers": "响应头",
    "response_body": "响应正文"
  },
  "doodle": {
    "color": "颜色",
    "size": "画笔大小",
    "eraser": "橡皮擦",
    "undo": "撤销",
    "clear": "清空",
    "download": "下载 PNG",
    "reset": "重置画布"
  },
  "modpow": {
    "base": "底数 (base)",
    "exponent": "指数 (exponent)",
    "modulus": "模数 (modulus)",
    "calc": "计算",
    "result": "结果：",
    "err_modulus_zero": "模数不能为 0",
    "err_negative_exp": "指数不能为负数",
    "err_invalid": "输入无效，请输入整数",
    "note": "模幂运算广泛应用于 RSA 加密、Diffie-Hellman 密钥交换、椭圆曲线密码学等。本工具使用 BigInt 实现快速模幂（平方-乘法算法），支持任意大整数。"
  },
  "bit_reverse": {
    "input_label": "输入正整数",
    "width_label": "位宽",
    "calc": "计算",
    "step_original": "原始二进制：",
    "step_reversed": "逆序二进制：",
    "result_dec": "结果（十进制）：",
    "result_hex": "结果（十六进制）：",
    "err_negative": "请输入非负整数",
    "err_invalid": "输入无效"
  },
  "punctuation": {
    "cn2en": "中文→英文",
    "en2cn": "英文→中文",
    "input_label": "输入文本",
    "convert": "转换",
    "output_label": "输出结果",
    "copy": "复制",
    "copied": "已复制"
  },
  "leap_year": {
    "mode_single": "单年查询",
    "mode_range": "范围查询",
    "year_label": "年份",
    "start_label": "起始年份",
    "end_label": "结束年份",
    "check": "查询",
    "is_leap": "{year} 年是闰年",
    "not_leap": "{year} 年不是闰年",
    "range_result": "{start}–{end} 之间共有 {count} 个闰年：",
    "err_invalid": "请输入有效年份",
    "err_range": "请输入有效的起始和结束年份",
    "rule": "闰年规则：能被 4 整除但不能被 100 整除的年份是闰年，能被 400 整除的年份也是闰年。例如：2000 年是闰年，1900 年不是闰年，2024 年是闰年。"
  },
  "reverse": {
    "mode_char": "字符逆序",
    "mode_line": "行逆序",
    "input_label": "输入文本",
    "action": "逆序",
    "output_label": "输出结果",
    "copy": "复制",
    "copied": "已复制"
  },
  "reaction_test": {
    "click_start": "点击开始测试",
    "wait_green": "等待绿色信号…",
    "click_now": "立刻点击！",
    "your_time": "你的反应时间：{ms} ms",
    "too_early": "太早了！请等绿色信号出现后再点击。",
    "try_again": "再试一次",
    "stats_title": "统计",
    "avg": "平均",
    "best": "最佳",
    "worst": "最差",
    "history_title": "历史记录（最近 10 次）"
  },
  "ipv4_ipv6": {
    "input_label": "输入地址",
    "mode_auto": "自动",
    "mode_ipv4": "IPv4",
    "mode_ipv6": "IPv6",
    "invalid_ipv4": "无效的 IPv4 地址",
    "invalid_ipv6": "无效的 IPv6 地址",
    "invalid_input": "无效的地址输入",
    "mapped": "IPv6 映射地址",
    "mapped_hex": "IPv6 映射（十六进制）",
    "compatible": "IPv4 兼容地址",
    "compatible_hex": "IPv4 兼容（十六进制）",
    "six_to_four": "6to4 地址",
    "expanded": "完整展开",
    "compressed": "压缩格式",
    "extracted_ipv4": "提取的 IPv4",
    "no_ipv4_mapping": "此 IPv6 地址不包含 IPv4 映射"
  },
  "code_formatter": {
    "language": "编程语言",
    "indent_size": "缩进大小",
    "wrap_length": "换行长度",
    "input_label": "输入代码",
    "input_placeholder": "粘贴代码…",
    "format": "格式化",
    "output_label": "格式化结果",
    "copy": "复制",
    "copied": "已复制"
  },
  "port_check": {
    "host_label": "主机名 / IP",
    "port_label": "端口号",
    "check": "检测",
    "check_common": "检测常用端口",
    "th_port": "端口",
    "th_service": "服务",
    "th_status": "状态",
    "status_checking": "检测中…",
    "status_open": "开放",
    "status_closed": "关闭",
    "status_timeout": "超时",
    "status_error": "错误",
    "limitation_note": "注意：由于浏览器 CORS 安全限制，端口检测结果仅供参考。使用 no-cors 模式的 fetch 请求，opaque 响应表示服务可能有响应，但无法确定。更精确的检测需要服务端工具。"
  },
  "auto_refresh": {
    "url_label": "目标 URL",
    "interval_label": "刷新间隔",
    "seconds": "秒（最少 5 秒）",
    "start": "开始",
    "stop": "停止",
    "countdown": "倒计时",
    "total_refreshes": "刷新次数",
    "last_refresh": "上次刷新",
    "preview": "页面预览",
    "bookmarklet_title": "书签小工具",
    "bookmarklet_desc": "将下方按钮拖到书签栏，可在任意页面使用自动刷新功能。",
    "bookmarklet_btn": "自动刷新书签"
  },
  "text_to_html_table": {
    "inputLabel": "输入文本（CSV/TSV）",
    "placeholder": "姓名,年龄,城市\n张三,25,北京\n李四,30,上海",
    "delimiter": "分隔符",
    "hasHeader": "包含表头行",
    "border": "边框",
    "padding": "单元格内边距",
    "className": "CSS 类名",
    "htmlCode": "HTML 代码",
    "copy": "复制代码",
    "copied": "已复制",
    "preview": "预览"
  },
  "font_preview": {
    "textLabel": "预览文本",
    "fontSize": "字体大小",
    "customFont": "自定义字体"
  },
  "symbols": {
    "search": "搜索",
    "searchPlaceholder": "搜索符号或名称…"
  },
  "rc4": {
    "key": "密钥",
    "mode": "模式",
    "encrypt": "加密",
    "decrypt": "解密",
    "plaintext": "明文",
    "ciphertext": "密文",
    "inputEnc": "输入编码",
    "outputEnc": "输出编码",
    "result": "结果",
    "keyRequired": "请输入密钥",
    "inputRequired": "请输入内容"
  },
  "clipboard_viewer": {
    "read": "读取剪切板",
    "hint": "需要浏览器授权。如被拒绝，请使用下方粘贴区域。",
    "pasteArea": "粘贴区域（Ctrl+V）",
    "pasteItems": "粘贴内容"
  },
  "svg_editor": {
    "tool": "工具",
    "add": "添加图形",
    "properties": "属性",
    "delete": "删除选中",
    "svgCode": "SVG 代码",
    "copy": "复制",
    "copied": "已复制"
  }
}
