{
  "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，僅本次工作階段）。檔案在本機轉碼，不上傳伺服器。建議單檔不超過 {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 等）。適合網頁嵌入；部分裝置播放支援有限。"
  },
  "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 越大檔案越小、畫質越低。",
    "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": "QR Code",
    "err_empty": "內容不能為空",
    "err_generate": "產生失敗"
  },
  "qr_decode": {
    "drop_label": "上傳含 QR 的圖片",
    "drop_title": "選擇或拖入 PNG / JPG 等",
    "drop_desc": "於本機以 jsQR 解析，不上傳。",
    "empty_hint": "尚未選擇圖片。",
    "parse_result": "解析結果",
    "copy": "複製",
    "err_canvas": "Canvas 無法使用",
    "err_not_found": "未辨識到 QR（請換更清晰、對比更高的圖）",
    "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": "排序前修剪行尾",
    "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（一年 max-age）",
    "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": "巢狀物件不會展開為扁平鍵；僅適合扁平字串對應。",
    "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 數取決於具體分詞器。"
  },
  "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": "已複製"
  }
}
