Boppo回首頁

例外字典

規則格式

一份全機器共用的清單,告訴 Boppo 在你用 Apple 注音時,哪些擊鍵序列不要自動切換語言。Boppo 注音不使用這份清單。以下是 JSON 格式、每條規則怎麼寫、以及它放在哪。

格式

{
  "version": 1,
  "updatedAt": "2026-07-18T00:00:00Z",
  "rules": [
    {
      "trigger": "k[0-9]",
      "protectAfter": "\\bkimi[\\s\\S]{0,8}",
      "note": "Kimi 的模型代號"
    },
    {
      "trigger": "gpt",
      "protectAfter": null,
      "note": "OpenAI GPT"
    }
  ]
}

怎麼寫一條規則

trigger
regex,對「Boppo 正要切換的那段擊鍵字面」整段錨定比對。k[0-9]命中 k3,但不命中 ak3。大小寫不敏感。
protectAfter
regex 或 null。比對你最近打的字,而且必須延伸到 trigger 的前緣 —— 所以\bkimi[\s\S]{0,8}的意思是「kimi 出現在 trigger 前 8 字內才保護」。留 null = 到處都保護。
note
一句話講清楚這是什麼,給我看的。引擎不碰它。

regex flavour

裝置端是 ICU / NSRegularExpression。用兩邊都通的子集:字元類 [a-z] [0-9]、量詞 * + ? {n,m}、錨點 ^ $、 \b \s \S \w \d。不接受 lookahead / lookbehind 與 backreference(收到會被拒,避免 ReDoS)。 trigger、protectAfter 各上限 256 字,note 200 字。

位置

App 從這個端點抓,每天最多一次,快取在本機,離線照常運作(ETag / 304):

GET https://boppo.suko.tw/api/dictionary

要提規則:把 trigger / protectAfter / note 寄到su@okuso.uk。審核後進全域字典,下次 App 抓取即生效,不用等 App 更新。