// Bilingual strings for the SecuAgent product site.
// Keep keys flat per section so JSX call-sites stay readable.

const I18N = {
  zh: {
    nav: {
      product: "產品",
      features: "核心功能",
      edge: "邊緣工程",
      lab: "實驗室",
      demo: "Live Demo",
      specs: "技術規格",
      cases: "適用場景",
      reseller: "代理計畫",
      faq: "FAQ",
      contact: "預約 Demo",
    },
    hero: {
      eyebrow: "BIZLUTION × SECUAGENT",
      title_a: "機密留在內網，",
      title_b: "智慧送到雲端。",
      subtitle:
        "SecuAgent 企業安全閘道器 — 為〔雲端 LLM〕與〔工業邊緣設備〕同時給答案。資料離開公司前自動代號化；雲端回來還原。8 GB 顯存就能跑地端模型，背景還在熱更新。",
      cta_primary: "啟動工業場景 Live Demo",
      cta_secondary: "下載產品白皮書",
      tag_status: "v1.3 — 量產出貨中",
      stat_a_n: "14 ms",
      stat_a_l: "閘道平均延遲",
      stat_b_n: "0",
      stat_b_l: "敏感字外洩",
      stat_c_n: "42%",
      stat_c_l: "雲端 Token 成本下降",
      stat_d_n: "8 GB",
      stat_d_l: "邊緣顯存就能跑",
    },
    pain: {
      eyebrow: "為什麼企業不敢用雲端 LLM",
      title: "AI 進不了工廠的那道牆。",
      lede:
        "GPT、Claude、Gemini 在會議室裡很厲害，到了量產線就被擋下。原因從來不是模型不夠強——而是資料根本不能出門。",
      items: [
        {
          n: "01",
          t: "機密 = 競爭力",
          d: "光阻配方、機台參數、製程良率，外洩一次就是上億損失。客戶合約裡白紙黑字寫不能進公雲。",
        },
        {
          n: "02",
          t: "個資 = 法遵紅線",
          d: "GDPR、個資法、HIPAA、PCI-DSS — 員工貼一段客戶資料到 ChatGPT，企業就吃裁罰。",
        },
        {
          n: "03",
          t: "提示詞 = 新攻擊面",
          d: "Prompt Injection、Jailbreak、訓練資料外溢、模型回吐。傳統 DLP 看不懂自然語言。",
        },
        {
          n: "04",
          t: "自建模型 = 太貴",
          d: "GPU 採購、模型微調、Ops 維運 — 中小製造業沒有 30 人 AI 團隊養得起。",
        },
      ],
    },
    arch: {
      eyebrow: "產品架構",
      title: "一道閘道，把雲端 AI 變成內網 AI。",
      lede:
        "SecuAgent 部署在客戶內網。員工的每一次提問、AI 的每一次回覆，都會經過去敏感化 → 智慧路由 → 還原 三步驟。原始機密永遠不出機房。",
      lane_a: "員工端",
      lane_b: "SecuAgent 閘道器",
      lane_c: "外部 LLM",
      lane_a_l: "Web / 桌面 / API SDK",
      lane_c_l: "GPT-4o · Claude · Gemini · 自架 Llama",
      step_titles: [
        "敏感字偵測",
        "代號化遮罩",
        "智慧路由",
        "代號還原",
      ],
      step_descs: [
        "BERT NER + Trie 樹 + Regex 三層引擎，命中工業辭典、PII、機台編號。",
        "原文替換為可逆代號（如 `[國際頂級半導體微影設備_1]`），保留語意。",
        "依問題類型分派到合適的後端 LLM，省 Token，降延遲。",
        "AI 回覆中的代號自動還原成原始名稱，使用者完全無感。",
        ],
    },
    features: {
      eyebrow: "核心功能",
      title: "三件事，做到底。",
      items: [
        {
          t: "去敏感化引擎",
          d: "三層偵測：Regex 命中標準格式（身分證、機台編號）、Trie 樹命中企業字典（產品代號、廠區）、BERT NER 命中自由文本（人名、地點、機密設備）。可逆對應表加密存放於 HSM。",
          tags: ["BERT NER", "Trie", "Regex", "HSM"],
        },
        {
          t: "智慧路由",
          d: "依語意分類自動派發：技術問題 → GPT-4o，文件摘要 → Claude，內部知識 → 自架 Llama。同時做 Token 壓縮，平均省 42% 雲端費用。",
          tags: ["Routing", "Token 壓縮", "Fallback"],
        },
        {
          t: "稽核日誌",
          d: "每一次攔截、替換、路由、還原都寫入不可竄改日誌（WORM）。資安主管即時看到誰問了什麼、被擋下什麼、送去了哪裡。內建 SOC 2 / ISO 27001 報表。",
          tags: ["WORM", "SIEM 整合", "SOC 2"],
        },
      ],
    },
    demo: {
      eyebrow: "LIVE DEMO",
      title: "看它怎麼擋下一段半導體機密。",
      lede:
        "下面是真的能跑的 Demo。點「一鍵播放」自動帶入工業場景，或在左邊聊天框自己打一段試試。",
      btn_play: "🚀 一鍵播放工業場景",
      btn_reset: "重置",
      employee_title: "員工端 · AI 助手",
      employee_sub: "他看到的，是一個普通的聊天視窗。",
      audit_title: "資安主管 · 實時稽核",
      audit_sub: "她看到的，是每一筆機密被攔下的瞬間。",
      input_ph: "輸入問題，或點上方按鈕播放範例…",
      sending: "閘道審查中…",
      metric_blocked: "今日阻斷外洩風險",
      metric_blocked_u: "次",
      metric_saved: "節省雲端 Token 成本",
      metric_latency: "閘道器平均延遲",
      metric_latency_d: "−5 ms 優化",
      metric_vram: "邊緣 GPU 顯存",
      metric_vram_n: "7.2 / 8.0 GB",
      metric_vram_d: "GGUF 量化 + 部分卸載",
      tab_log: "敏感字轉換紀錄",
      tab_stats: "風險類型統計",
      tab_learn: "持續學習",
      learn_data_t: "🔄 黃金對話 → Alpaca 格式清洗",
      learn_data_pct: 68,
      learn_data_meta: "RedisVL 撈出 2,840 筆對話，已轉換 1,930 筆",
      learn_loss_t: "📉 QLoRA 微調 Loss 曲線（離峰跑）",
      learn_loss_meta: "RTX 4090 · 1024 token · batch=2 · step 1,420",
      learn_reload_btn: "⚡ 執行 ModelManager 原子級熱更新",
      learn_reload_meta: "預估切換時間 < 200 ms · 服務不中斷",
      learn_reload_running: "背景執行緒載入新 LoRA 權重…",
      learn_reload_done: "✓ 新權重已生效 · 0 ms 停機",
      log_cols: ["時間", "類型", "原始敏感字", "代號化遮蔽", "狀態"],
      log_status_ok: "已加密",
      log_status_blocked: "安全攔截",
      stats_cats: ["核心技術機密", "PII 個資外洩", "提示詞注入", "出口管制詞彙", "競品資訊"],
      ai_reply_lead: "（語意還原後回覆）",
      ai_canned:
        "（動態分析完成）您詢問的內容已透過安全閘道器審查並代號化，原文未離開內網。",
      msg_user_demo:
        "位於南科三廠 A1 區的艾司摩爾 DUV 光阻塗佈機（編號：ASML-2026-X1）目前發生壓降異常，感測器數據為 Pressure: 0.42 MPa，附帶昨日機密維修日誌：『換裝非原廠 O 型環且有機油微幅滲漏』。請幫我分析原因。",
      msg_ai_demo: [
        "針對南科三廠 A1 區艾司摩爾 DUV 光阻塗佈機（ASML-2026-X1）的壓降異常，初步研判最可能原因是 ",
        "非原廠 O 型環",
        " 與既有真空系統的相容性問題，加上微量機油滲漏污染了塗佈腔體的壓力感測點。建議：(1) 立即停機並更換為原廠 Viton FFKM O 型環；(2) 對塗佈腔體做 IPA 清洗；(3) 維修日誌應併入 PM 警示，避免後續批次良率受影響。",
      ],
      mock_logs: [
        { raw: "南科三廠 A1 區", type: "BERT NER", token: "[台灣南部核心晶圓廠區_1]" },
        { raw: "艾司摩爾 DUV 光阻塗佈機", type: "Trie 命中", token: "[國際頂級半導體微影設備_1]" },
        { raw: "ASML-2026-X1", type: "Regex 命中", token: "[核心資產代號_1]" },
        { raw: "0.42 MPa", type: "Regex 命中", token: "[製程參數_1]" },
        { raw: "非原廠 O 型環", type: "Trie 命中", token: "[供應鏈零件_1]" },
      ],
    },
    specs: {
      eyebrow: "技術規格與效能",
      title: "工程師需要看的數字。",
      cols: [
        {
          t: "效能",
          rows: [
            ["閘道平均延遲", "14 ms (P50) / 32 ms (P99)"],
            ["單機並發", "3,200 req/s"],
            ["最大文本", "128k tokens / request"],
            ["可用性 SLA", "99.95%"],
          ],
        },
        {
          t: "偵測能力",
          rows: [
            ["Regex 樣板", "230+ 內建 / 自訂無上限"],
            ["Trie 字典", "百萬詞級，熱更新"],
            ["BERT NER 模型", "中英雙語，本地推論"],
            ["偽陽率", "< 0.8%"],
          ],
        },
        {
          t: "整合 / 部署",
          rows: [
            ["LLM 後端", "GPT-4o · Claude 3.5 · Gemini · Llama 3 · Qwen"],
            ["部署形式", "x86 / ARM Docker · K8s · Air-gap"],
            ["稽核輸出", "Splunk · Elastic · QRadar · syslog"],
            ["IoT 協定", "MQTT · OPC-UA · Modbus"],
          ],
        },
        {
          t: "邊緣執行",
          rows: [
            ["地端模型", "Llama-3-8B Q4_K_M (GGUF)"],
            ["最小硬體", "8 GB VRAM (RTX 3060+ / Jetson Orin)"],
            ["快軌延遲", "< 100 ms（規則 → OPC-UA）"],
            ["熱更新切換", "< 200 ms · 零停機"],
          ],
        },
      ],
    },
    edge: {
      eyebrow: "邊緣工程 · 為什麼能在工廠落地",
      title: "8GB 顯存的現場設備，跑得動雲端級 AI。",
      lede:
        "閘道器要進工廠，不是把雲端搬過來就行——它要在資源受限的邊緣硬體上，同時做到斷電保護、模型量化、熱更新、與背景不卡頓。",
      tracks_title: "雙軌預警管線",
      tracks_lede: "異常訊號進來，安全先到，原因隨後。",
      fast_tag: "快軌 · Rule-based",
      fast_t: "<100 ms 硬體斷電",
      fast_d: "感測器跨閾值，閘道器直接送 OPC-UA 斷電指令到 PLC。不等 LLM、不等網路、不等推論。",
      slow_tag: "慢軌 · LLM",
      slow_t: "5–10 s 故障根因",
      slow_d: "同時把上下文丟進地端 Llama-3-8B（GGUF 量化）做深度故障根因分析，產出工單與修復建議。",
      items: [
        {
          tag: "IoT 翻譯",
          t: "MQTT JSON → 自然語言 + 數據區間化",
          d: "樣板引擎把感測器 JSON 翻成 LLM 看得懂的句子；再做 Data Quantization——0.42 MPa 與 0.43 MPa 對應到同一個語意狀態，RedisVL 語意快取命中率從 12% 拉到 84%。",
          k: "快取命中率 ↑ 7×",
        },
        {
          tag: "模型量化",
          t: "GGUF + 動態 gpu-layers · 8 GB 不 OOM",
          d: "llama.cpp 載入 Llama-3-8B Q4_K_M。顯存吃緊時自動調整 --gpu-layers 做部分卸載，把部分層留在系統 RAM；max_seq_length 鎖在 1024，現場 RTX 4090 / Jetson Orin 都能穩跑。",
          k: "支援 RTX / Jetson / Mac M-series",
        },
        {
          tag: "Zero-Downtime",
          t: "執行緒安全的 ModelManager 熱更新",
          d: "棄用全域變數，重構成 Singleton + threading.Lock。新 LoRA 權重在背景執行緒載入，舊大腦維持 100% 推論服務；切換是毫秒級原子指標替換。",
          k: "毫秒級切換 · 零停機",
        },
        {
          tag: "持續學習",
          t: "黃金對話 → QLoRA 離峰微調",
          d: "從 RedisVL 自動撈出高品質對話，轉成 Alpaca 格式，離峰時段跑 QLoRA。產線越久，閘道越懂這條產線。",
          k: "每週自動產 1 個 LoRA 候選",
        },
      ],
    },
    lab: {
      eyebrow: "互動實驗室 · 投資人 30 秒看完",
      title: "兩個按鈕，看一次就懂。",
      lede:
        "工程師打進去的原文在左還，黑條是機密被閘道攝下的瞬間——滑鼠標移上去可以看到原文。右邊兩顆按鈕：跳出一段安全對話，或者在你看著的時候把大腦從 V1 換成 V2——服務全程不中斷。",
      terminal_title: "FAB-FLOOR-03 · SecuAgent Terminal",
      prompt_user: "engineer@onprem",
      prompt_ai: "secuagent",
      prompt_idle: "等待指令…",
      user_msg: [
        { type: "text", v: "診斷：南科 A1 區的 " },
        { type: "mask", v: "艶司摩爾 DUV 光阻塑佈機" },
        { type: "text", v: "（機台編號 " },
        { type: "mask", v: "ASML-2026-X1" },
        { type: "text", v: "）壓力降到 " },
        { type: "mask", v: "0.42 MPa" },
        { type: "text", v: "，昨天創換 " },
        { type: "mask", v: "非原廠 O 型環" },
        { type: "text", v: "。幫我分析原因。" },
      ],
      ai_msg_v1:
        "初判為 O 型環材質與真空線不相容造成壓降。建議更換為原廠 Viton FFKM，并對腽體做 IPA 清洗。",
      ai_msg_v2:
        "同樣判斷為 O 型環材質問題，但依上週新增的「南科供應鏈知識」進一步鎖定為批號 SP-A0312 的副廠 O 型環。建議停機檢查同批次 3 台機台。",
      ai_pending: "閘道審查中…",
      mask_hint: "提示：滑鼠標移到黑條上，可看到原始敏感字。送出外網的只有代號化版。",
      version_label: "ModelManager · 大腦版本",
      version_note_v1: "V1 · 推論服務正常",
      version_note_running: "V1 仍在接 100% 流量 · V2 背景載入中",
      version_note_v2: "V2 · 原子切換完成 · 0 ms 停機",
      vram_label: "邊緣 GPU 顯存",
      vram_value: "7.2 / 8.0 GB",
      vram_meta: "GGUF Q4_K_M · 動態卸載",
      btn_chat: "▶ 模擬安全對話",
      btn_chat_again: "⭯ 重新跨一次",
      btn_reload: "⚡ 執行原子級熱更新",
      btn_reload_running: "背景熱更新中…",
      btn_reload_done: "✓ V2 已上線",
      btn_reload_reset: "⭯ 回到 V1",
      lane_user: "原始內網輸入",
      lane_out: "送出雲端的代號化版",
      out_template: "診斷：南科 A1 區的 [頂級微影設備_1]（[核心資產代號_1]）壓力降到 [製程參數_1]，昨天創換 [供應鏈零件_1]。幫我分析原因。",
    },
    cases: {
      eyebrow: "適用場景",
      title: "資料越敏感，越需要它。",
      items: [
        {
          tag: "半導體",
          t: "晶圓廠維修知識助手",
          d: "機台編號、配方、製程參數、維修日誌 — 全部代號化後再進雲端模型。研發效率 ↑，IP 完全留在廠內。",
          k: "ASML / TSMC / UMC 場域驗證中",
        },
        {
          tag: "精密製造",
          t: "現場 SOP 即時翻譯與問答",
          d: "越南、馬來西亞、墨西哥廠的多語員工，可以用母語問機台手冊，圖紙與規格不會外洩到 Google Translate。",
          k: "支援 28 種語言",
        },
        {
          tag: "醫療",
          t: "病歷摘要與用藥建議",
          d: "病患個資、病歷號、用藥史在進 GPT 之前完成 de-identification。符合 HIPAA、個資法第六條。",
          k: "與 3 家醫學中心 PoC",
        },
        {
          tag: "金融",
          t: "客戶通聯紀錄分析",
          d: "客服錄音轉文字後，姓名、帳號、額度自動代號化。風控分析師看到模式，看不到個別資料。",
          k: "通過 ISO 27001 / SOC 2 Type II",
        },
      ],
    },
    customers: {
      eyebrow: "信任 SecuAgent 的團隊",
      title: "他們已經把雲端 AI 帶進了無塵室。",
      quote:
        "「我們花兩年解決不了的合規問題，SecuAgent 兩週搞定。研發團隊終於可以光明正大用 GPT，IP 一個字都沒出公司。」",
      quote_by: "— 製造業客戶 · CTO（案例授權中）",
      logos_note: "客戶 logo 待授權上架",
      placeholders: ["半導體 A 廠", "精密機械 B 集團", "醫學中心 C", "金融控股 D"],
    },
    reseller: {
      eyebrow: "代理商計畫",
      title: "我們不打單，我們陪你打單。",
      lede:
        "SecuAgent 透過認證 SI 與顧問夥伴銷售。我們不做最後一哩，把現場留給你。",
      items: [
        { t: "30%+ 起跳的代理利潤", d: "首年合約抽成 30%–45%，續約 20%，硬體另計。" },
        { t: "三天認證培訓", d: "技術 + 銷售雙軌，通過後正式列入 Bizlution 夥伴名冊。" },
        { t: "共同行銷預算", d: "合格夥伴每年最高 30 萬 NTD 的 MDF，含活動、廣告、案例。" },
        { t: "免費 PoC 沙盒", d: "為你的客戶提供 30 天完整功能 PoC 環境，含 Bizlution 工程師遠端協助。" },
      ],
      cta: "申請成為夥伴",
    },
    faq: {
      eyebrow: "常見問題",
      title: "客戶通常會問這些。",
      items: [
        {
          q: "資料真的不會出內網嗎？",
          a: "對。偵測、代號化、還原都在閘道器內完成。送到外部 LLM 的，只有代號化後的文本。對應表加密在 HSM，連 Bizlution 都讀不到。",
        },
        {
          q: "代號化會不會讓 AI 變笨？",
          a: "我們做的是語意保留代號（semantic-preserving tokenization），例如把「ASML 光阻塗佈機」換成「國際頂級半導體微影設備」。語意分類、推理、摘要的準確率測試在 96% 以上。",
        },
        {
          q: "支援哪些 LLM？",
          a: "GPT-4o、Claude 3.5、Gemini、Llama 3、Qwen、地端 Mistral；可同時連多家，路由器自動分派。新模型 4 週內納入。",
        },
        {
          q: "和傳統 DLP 有什麼不同？",
          a: "傳統 DLP 看關鍵字，看不懂自然語言。SecuAgent 用 BERT NER 看上下文，能抓到改寫過、繞過詞典的敏感資料。我們不取代 DLP，補它看不到的盲區。",
        },
        {
          q: "可以本地部署嗎？",
          a: "可以。我們是 Air-gap friendly：所有模型、字典、稽核日誌都能完全離線運行。也支援與你現有的 SIEM、IAM、HSM 整合。",
        },
        {
          q: "授權怎麼算？",
          a: "依年訂閱 + 每月 token 量。教育機構、PoC、研究單位另有方案。代理商統一報價，歡迎聯絡。",
        },
      ],
    },
    contact: {
      eyebrow: "預約 Demo",
      title: "30 分鐘，看你的資料怎麼被保護。",
      lede: "請填表，產品團隊會在一個工作天內回覆，提供現場或線上 Demo。",
      f_name: "姓名",
      f_company: "公司",
      f_role: "職稱",
      f_email: "公司信箱",
      f_industry: "產業",
      f_industries: ["半導體", "精密製造", "醫療", "金融", "其他"],
      f_notes: "想了解的問題（選填）",
      submit: "送出預約",
      sent: "已收到，謝謝！我們會在一個工作天內聯絡您。",
      contact_meta: [
        "Bizlution Inc. / 晁碁科技股份有限公司",
        "台北市南港區 · No. 3, Yuan-Qu Street",
        "secuagent@bizlution.com",
      ],
    },
    footer: {
      tagline: "機密留在內網，智慧送到雲端。",
      legal: "© 2026 Bizlution Inc. SecuAgent™ 為 Bizlution 註冊商標。",
      cols: [
        { t: "產品", links: ["SecuAgent", "SignEffeX", "BizBooking", "RCC"] },
        { t: "公司", links: ["關於 Bizlution", "客戶案例", "新聞", "招募"] },
        { t: "資源", links: ["技術白皮書", "整合文件", "資安公告", "更新日誌"] },
      ],
    },
  },
  en: {
    nav: {
      product: "Product",
      features: "Features",
      edge: "Edge",
      lab: "Lab",
      demo: "Live Demo",
      specs: "Specs",
      cases: "Use cases",
      reseller: "Partners",
      faq: "FAQ",
      contact: "Book a demo",
    },
    hero: {
      eyebrow: "BIZLUTION × SECUAGENT",
      title_a: "Secrets stay inside.",
      title_b: "Intelligence goes to the cloud.",
      subtitle:
        "SecuAgent — the enterprise Secure AI Gateway built for cloud LLMs and industrial edge devices in one place. We tokenize secrets and PII before they leave your network, restore them after the cloud answers, and run a local Llama-3 on an 8 GB GPU while hot-reloading models in the background.",
      cta_primary: "Run the industrial live demo",
      cta_secondary: "Download whitepaper",
      tag_status: "v1.3 — shipping to production",
      stat_a_n: "14 ms",
      stat_a_l: "avg gateway latency",
      stat_b_n: "0",
      stat_b_l: "secrets leaked",
      stat_c_n: "42%",
      stat_c_l: "cloud token spend cut",
      stat_d_n: "8 GB",
      stat_d_l: "runs on edge VRAM",
    },
    pain: {
      eyebrow: "Why the AI never reaches the fab floor",
      title: "There's a wall around your factory.",
      lede:
        "GPT, Claude and Gemini are brilliant in the boardroom. On the production line they get blocked — not because the model isn't smart enough, but because the data can't legally leave.",
      items: [
        {
          n: "01",
          t: "Secrets are leverage",
          d: "Resist formulas, tool parameters, yield curves — one leak is a nine-figure loss. Customer contracts forbid sending them to public cloud.",
        },
        {
          n: "02",
          t: "PII is a red line",
          d: "GDPR, HIPAA, PCI-DSS, Taiwan PDPA. One employee pasting a customer record into ChatGPT and the company eats the fine.",
        },
        {
          n: "03",
          t: "Prompts are a new attack surface",
          d: "Prompt injection, jailbreaks, training-data exfiltration. Legacy DLP can't read natural language.",
        },
        {
          n: "04",
          t: "Building your own is too expensive",
          d: "GPUs, fine-tuning, ML-ops — mid-market manufacturers can't carry a 30-person AI team.",
        },
      ],
    },
    arch: {
      eyebrow: "Architecture",
      title: "One gateway, and your cloud LLM behaves like an on-prem one.",
      lede:
        "SecuAgent sits on your network. Every prompt out, every answer back — passed through tokenize → route → restore. Originals never leave your data center.",
      lane_a: "Employee",
      lane_b: "SecuAgent gateway",
      lane_c: "External LLM",
      lane_a_l: "Web · Desktop · API SDK",
      lane_c_l: "GPT-4o · Claude · Gemini · Self-hosted Llama",
      step_titles: ["Detect", "Tokenize", "Route", "Restore"],
      step_descs: [
        "Three-layer engine: BERT NER + Trie + Regex against industrial dictionaries, PII, and asset IDs.",
        "Originals are swapped for reversible semantic tokens (e.g. `[Top-tier semiconductor lithography tool_1]`).",
        "Each request is steered to the right LLM by topic — saving tokens and latency.",
        "Tokens in the cloud's reply are restored to their originals. The user never sees the difference.",
      ],
    },
    features: {
      eyebrow: "Core features",
      title: "Three things, done thoroughly.",
      items: [
        {
          t: "De-sensitization engine",
          d: "Three detection layers: Regex for structured IDs, Trie against your custom dictionary, BERT NER for free text (names, places, restricted assets). The reverse map is encrypted in HSM.",
          tags: ["BERT NER", "Trie", "Regex", "HSM"],
        },
        {
          t: "Intelligent routing",
          d: "Semantic classifier dispatches each request: code → GPT-4o, summarization → Claude, internal knowledge → self-hosted Llama. Token-compressed prompts cut cloud spend by an average 42%.",
          tags: ["Routing", "Compression", "Fallback"],
        },
        {
          t: "Tamper-proof audit",
          d: "Every block, swap, route and restore lands in a WORM log. Security leads see, in real time, who asked what, what was redacted, and where it went. SOC 2 / ISO 27001 reports built in.",
          tags: ["WORM", "SIEM", "SOC 2"],
        },
      ],
    },
    demo: {
      eyebrow: "LIVE DEMO",
      title: "Watch it stop one semiconductor secret.",
      lede:
        "This demo is real. Press play for the canned industrial scenario, or just type your own message on the left.",
      btn_play: "🚀 Play industrial scenario",
      btn_reset: "Reset",
      employee_title: "Employee · AI assistant",
      employee_sub: "They see a normal chat window.",
      audit_title: "Security lead · Live audit",
      audit_sub: "She sees every secret as it's caught.",
      input_ph: "Type a message, or press the play button above…",
      sending: "Gateway reviewing…",
      metric_blocked: "Leak events blocked today",
      metric_blocked_u: " ",
      metric_saved: "Cloud token cost saved",
      metric_latency: "Avg gateway latency",
      metric_latency_d: "−5 ms vs. baseline",
      metric_vram: "Edge GPU VRAM",
      metric_vram_n: "7.2 / 8.0 GB",
      metric_vram_d: "GGUF + partial offload",
      tab_log: "Token transformations",
      tab_stats: "Risk-type distribution",
      tab_learn: "Continuous learning",
      learn_data_t: "🔄 Golden conversations → Alpaca format",
      learn_data_pct: 68,
      learn_data_meta: "RedisVL pulled 2,840 dialogues · 1,930 converted",
      learn_loss_t: "📉 QLoRA fine-tune loss (off-peak)",
      learn_loss_meta: "RTX 4090 · 1024 tokens · batch=2 · step 1,420",
      learn_reload_btn: "⚡ Atomic ModelManager hot-reload",
      learn_reload_meta: "Expected swap < 200 ms · service uninterrupted",
      learn_reload_running: "Loading new LoRA weights in background thread…",
      learn_reload_done: "✓ New weights live · 0 ms downtime",
      log_cols: ["Time", "Type", "Original", "Token", "Status"],
      log_status_ok: "Encrypted",
      log_status_blocked: "Blocked",
      stats_cats: ["Core technical IP", "PII leakage", "Prompt injection", "Export-restricted terms", "Competitor data"],
      ai_reply_lead: "(answer, with originals restored)",
      ai_canned:
        "(Analysis complete.) Your prompt was reviewed by the SecuAgent gateway and tokenized — the original never left your network.",
      msg_user_demo:
        "The ASML DUV photoresist coater (asset ID ASML-2026-X1) at Building A1, Tainan Fab 3 is showing a pressure drop. Sensor reads 0.42 MPa. Yesterday's confidential maintenance log says: 'Replaced O-ring with non-OEM part, slight oil seepage observed.' Please analyze.",
      msg_ai_demo: [
        "For the ASML DUV photoresist coater at Tainan Fab 3 Building A1 (ASML-2026-X1), the pressure drop is most likely caused by the ",
        "non-OEM O-ring",
        " being incompatible with the vacuum line, with the oil seepage contaminating the coating chamber's pressure sensor. Recommend: (1) take the tool offline and replace with OEM Viton FFKM; (2) IPA-clean the coating chamber; (3) flag this in the PM register so subsequent batches aren't at risk.",
      ],
      mock_logs: [
        { raw: "Tainan Fab 3 Building A1", type: "BERT NER", token: "[Southern-Taiwan core wafer fab site_1]" },
        { raw: "ASML DUV photoresist coater", type: "Trie hit", token: "[Top-tier semiconductor lithography tool_1]" },
        { raw: "ASML-2026-X1", type: "Regex hit", token: "[Core asset ID_1]" },
        { raw: "0.42 MPa", type: "Regex hit", token: "[Process parameter_1]" },
        { raw: "non-OEM O-ring", type: "Trie hit", token: "[Supply-chain component_1]" },
      ],
    },
    specs: {
      eyebrow: "Specs & performance",
      title: "Numbers your engineers actually want.",
      cols: [
        {
          t: "Performance",
          rows: [
            ["Gateway latency", "14 ms (P50) · 32 ms (P99)"],
            ["Concurrency / node", "3,200 req/s"],
            ["Max payload", "128k tokens / request"],
            ["SLA", "99.95%"],
          ],
        },
        {
          t: "Detection",
          rows: [
            ["Regex templates", "230+ built-in · unlimited custom"],
            ["Trie dictionary", "Millions of terms · hot-reload"],
            ["BERT NER model", "ZH + EN · local inference"],
            ["False-positive rate", "< 0.8%"],
          ],
        },
        {
          t: "Integration & deploy",
          rows: [
            ["LLM backends", "GPT-4o · Claude 3.5 · Gemini · Llama 3 · Qwen"],
            ["Form factor", "x86 / ARM Docker · K8s · Air-gap"],
            ["Audit output", "Splunk · Elastic · QRadar · syslog"],
            ["IoT protocols", "MQTT · OPC-UA · Modbus"],
          ],
        },
        {
          t: "Edge runtime",
          rows: [
            ["Local model", "Llama-3-8B Q4_K_M (GGUF)"],
            ["Min hardware", "8 GB VRAM (RTX 3060+ / Jetson Orin)"],
            ["Fast-track latency", "<100 ms (rule → OPC-UA)"],
            ["Hot-reload cut-over", "<200 ms · zero downtime"],
          ],
        },
      ],
    },
    edge: {
      eyebrow: "Edge engineering · why it actually runs on a factory floor",
      title: "Cloud-class AI, on a device with 8 GB of VRAM.",
      lede:
        "Putting a gateway on a factory floor isn't moving the cloud onsite — it's surviving on constrained hardware while doing power-off protection, model quantization, hot-reload, and never blocking the chat.",
      tracks_title: "Dual-track alert pipeline",
      tracks_lede: "When an anomaly arrives, safety lands first; the explanation follows.",
      fast_tag: "Fast track · Rule-based",
      fast_t: "<100 ms power-off",
      fast_d: "Sensor crosses threshold; the gateway fires an OPC-UA shutdown command straight to the PLC. No LLM, no network, no inference in the loop.",
      slow_tag: "Slow track · LLM",
      slow_t: "5–10 s root-cause",
      slow_d: "In parallel, context is shipped to the on-prem Llama-3-8B (GGUF) for deep root-cause analysis and an automatic work-order draft.",
      items: [
        {
          tag: "IoT translation",
          t: "MQTT JSON → natural language + quantization",
          d: "A template engine turns sensor JSON into LLM-readable prose, then data-quantization buckets 0.42 MPa and 0.43 MPa to the same semantic state. RedisVL cache hit-rate jumps from 12% to 84%.",
          k: "Cache hit rate ↑ 7×",
        },
        {
          tag: "Model quantization",
          t: "GGUF + dynamic gpu-layers · 8 GB without OOM",
          d: "llama.cpp loads Llama-3-8B Q4_K_M. When VRAM gets tight it auto-tunes --gpu-layers and partially offloads layers to system RAM. max_seq_length pinned at 1024. Runs on RTX 4090 and Jetson Orin alike.",
          k: "RTX · Jetson · Mac M-series",
        },
        {
          tag: "Zero-downtime",
          t: "Thread-safe ModelManager hot-reload",
          d: "No globals — a Singleton + threading.Lock. New LoRA weights load in a background thread; the old brain keeps serving at 100% until an atomic pointer swap, in milliseconds.",
          k: "Millisecond cut-over · zero downtime",
        },
        {
          tag: "Continuous learning",
          t: "Golden dialogues → off-peak QLoRA",
          d: "High-quality conversations are mined from RedisVL automatically, converted to Alpaca format, and QLoRA-fine-tuned during off-peak. The longer the line runs, the smarter the gateway gets.",
          k: "~1 LoRA candidate / week, automatically",
        },
      ],
    },
    lab: {
      eyebrow: "Investor lab · the 30-second tour",
      title: "Two buttons. Investors get it in one look.",
      lede:
        "The engineer's raw prompt is on the left — black bars are the moments SecuAgent intercepted a secret. Hover any bar to reveal the original. Two buttons on the right: simulate a safe conversation, or hot-swap the brain from V1 to V2 while you're watching, with zero downtime.",
      terminal_title: "FAB-FLOOR-03 · SecuAgent Terminal",
      prompt_user: "engineer@onprem",
      prompt_ai: "secuagent",
      prompt_idle: "Awaiting input…",
      user_msg: [
        { type: "text", v: "Diagnose: at Tainan Fab 3 Building A1, the " },
        { type: "mask", v: "ASML DUV photoresist coater" },
        { type: "text", v: " (asset " },
        { type: "mask", v: "ASML-2026-X1" },
        { type: "text", v: ") pressure has dropped to " },
        { type: "mask", v: "0.42 MPa" },
        { type: "text", v: ". We just swapped in a " },
        { type: "mask", v: "non-OEM O-ring" },
        { type: "text", v: ". What's the cause?" },
      ],
      ai_msg_v1:
        "Most likely the non-OEM O-ring is incompatible with the vacuum line. Recommend swapping in an OEM Viton FFKM and doing an IPA clean on the chamber.",
      ai_msg_v2:
        "Same diagnosis on the O-ring, but with last week's new supply-chain knowledge I can pin this to non-OEM lot SP-A0312 specifically. Recommend taking the 3 tools sharing that lot offline for inspection.",
      ai_pending: "Gateway reviewing…",
      mask_hint: "Tip: hover any black bar to see the original. Only the tokenized version leaves your network.",
      version_label: "ModelManager · brain version",
      version_note_v1: "V1 · inference healthy",
      version_note_running: "V1 still serving 100% of traffic · V2 loading in background",
      version_note_v2: "V2 · atomic swap complete · 0 ms downtime",
      vram_label: "Edge GPU VRAM",
      vram_value: "7.2 / 8.0 GB",
      vram_meta: "GGUF Q4_K_M · dynamic offload",
      btn_chat: "▶ Simulate a safe conversation",
      btn_chat_again: "⭯ Run the prompt again",
      btn_reload: "⚡ Atomic hot-reload",
      btn_reload_running: "Hot-reloading in background…",
      btn_reload_done: "✓ V2 is live",
      btn_reload_reset: "⭯ Revert to V1",
      lane_user: "Raw input (on-prem)",
      lane_out: "What leaves your network",
      out_template: "Diagnose: at Tainan Fab 3 Building A1, the [Top-tier semiconductor lithography tool_1] (asset [Core asset ID_1]) pressure has dropped to [Process parameter_1]. We just swapped in a [Supply-chain component_1]. What's the cause?",
    },
    cases: {
      eyebrow: "Use cases",
      title: "The more sensitive the data, the more it needs SecuAgent.",
      items: [
        {
          tag: "Semiconductor",
          t: "Fab maintenance copilot",
          d: "Tool IDs, recipes, process parameters, repair logs — tokenized before they reach any cloud LLM. R&D speeds up. IP stays inside the fab.",
          k: "In-field PoC: ASML / TSMC / UMC class",
        },
        {
          tag: "Precision mfg.",
          t: "Multilingual on-floor SOP",
          d: "Vietnamese, Malay and Spanish operators query tool manuals in their native language. Drawings and specs never reach Google Translate.",
          k: "28 languages supported",
        },
        {
          tag: "Healthcare",
          t: "Discharge summary & meds review",
          d: "Patient identifiers, MRNs and meds are de-identified before GPT sees them. HIPAA and PDPA Article 6 aligned.",
          k: "PoC with 3 medical centers",
        },
        {
          tag: "Finance",
          t: "Customer call analytics",
          d: "Transcribed calls are auto-tokenized: names, account numbers, limits. Risk analysts see patterns, not records.",
          k: "ISO 27001 / SOC 2 Type II certified",
        },
      ],
    },
    customers: {
      eyebrow: "Trusted by",
      title: "They've already brought cloud AI into the cleanroom.",
      quote:
        "“The compliance problem we couldn't crack in two years — SecuAgent solved in two weeks. R&D can finally use GPT in the open, and not one byte of IP leaves the building.”",
      quote_by: "— Manufacturing customer · CTO (case study in review)",
      logos_note: "Customer logos pending release",
      placeholders: ["Semiconductor Co. A", "Precision Group B", "Medical Center C", "Financial Holdings D"],
    },
    reseller: {
      eyebrow: "Partner program",
      title: "We don't close your deal. We help you close it.",
      lede:
        "SecuAgent ships through certified SI and consulting partners. We don't take the last mile — that's your territory.",
      items: [
        { t: "30%+ partner margin", d: "30–45% on first-year contracts · 20% on renewals · hardware extra." },
        { t: "Three-day certification", d: "Tech + sales tracks. Pass, and you're listed in the Bizlution partner directory." },
        { t: "Co-marketing budget", d: "Up to NTD 300k of MDF per year for qualified partners: events, ads, case studies." },
        { t: "Free PoC sandbox", d: "A 30-day fully-featured PoC for each of your customers, with remote Bizlution engineering support." },
      ],
      cta: "Apply to partner",
    },
    faq: {
      eyebrow: "FAQ",
      title: "Questions customers actually ask.",
      items: [
        {
          q: "Does data really never leave my network?",
          a: "Correct. Detection, tokenization and restoration all happen inside the gateway. Only the tokenized text is shipped to external LLMs. The reverse map is encrypted in HSM — even Bizlution can't read it.",
        },
        {
          q: "Will tokenization make the AI dumber?",
          a: "We use semantic-preserving tokens — e.g. \"ASML photoresist coater\" becomes \"top-tier semiconductor lithography tool\". Classification, reasoning and summarization accuracy stays above 96% in our benchmark.",
        },
        {
          q: "Which LLMs are supported?",
          a: "GPT-4o, Claude 3.5, Gemini, Llama 3, Qwen, on-prem Mistral. Multi-backend simultaneously — the router decides. New models added within 4 weeks.",
        },
        {
          q: "How is this different from traditional DLP?",
          a: "Classic DLP matches keywords; it can't read paraphrased natural language. SecuAgent uses BERT NER over context and catches what DLP misses. We complement DLP — not replace it.",
        },
        {
          q: "Can I deploy it on-prem?",
          a: "Yes. Air-gap friendly. Models, dictionaries and audit logs run fully offline. Integrates with your existing SIEM, IAM and HSM.",
        },
        {
          q: "How does licensing work?",
          a: "Annual subscription + monthly token tier. Special terms for education, PoCs, research. Quoted through your reseller — talk to us.",
        },
      ],
    },
    contact: {
      eyebrow: "Book a demo",
      title: "30 minutes. See your data being protected.",
      lede: "Fill in the form and our product team will get back to you within one business day with an on-site or online demo.",
      f_name: "Name",
      f_company: "Company",
      f_role: "Title",
      f_email: "Work email",
      f_industry: "Industry",
      f_industries: ["Semiconductor", "Precision mfg.", "Healthcare", "Finance", "Other"],
      f_notes: "What you'd like to cover (optional)",
      submit: "Request demo",
      sent: "Got it — thank you. We'll be in touch within one business day.",
      contact_meta: [
        "Bizlution Inc. / 晁碁科技股份有限公司",
        "Nangang District, Taipei · No. 3, Yuan-Qu Street",
        "secuagent@bizlution.com",
      ],
    },
    footer: {
      tagline: "Secrets stay inside. Intelligence goes to the cloud.",
      legal: "© 2026 Bizlution Inc. SecuAgent™ is a registered trademark of Bizlution.",
      cols: [
        { t: "Product", links: ["SecuAgent", "SignEffeX", "BizBooking", "RCC"] },
        { t: "Company", links: ["About Bizlution", "Customers", "News", "Careers"] },
        { t: "Resources", links: ["Whitepaper", "Integration docs", "Security advisories", "Changelog"] },
      ],
    },
  },
};

window.I18N = I18N;
