OSOP 官網完整繁體中文國際化
Session Log完整的 OSOP 網站 i18n 覆蓋:翻譯所有 UI 元件、頁面內容、YAML 展示區,以及 245 個工作流程庫條目,從英文翻譯為繁體中文。
使用者發現切換中文後仍有許多區域顯示英文。
探索 next-intl 設定、訊息檔案、路由設定及所有頁面元件。
在首頁、optimize、sop-doc、hub、OsopCodeBlock、DocsNav、部落格中發現硬編碼英文。
建立 6 步驟計畫:共用 UI 鍵值、元件、頁面、YAML 內容。
為 en 和 zh-TW 建立 optimize、sop-doc、hub 訊息檔案。
為首頁、optimize、sop-doc、hub、版面頁尾新增翻譯鍵值。
以 useTranslations 更新 OsopCodeBlock、DocsNav、部落格。
3 個頁面共 8 個 YAML 區塊現在顯示中文節點名稱。
為 API 路徑中的大括號加上跳脫,防止 next-intl 解析錯誤。
建立 translate.ts、get-translated.ts 用於執行時 YAML 翻譯。
將所有可翻譯的 name/description 字串提取至 workflow-data.json。
分成 4 個批次並派遣平行翻譯代理。
Claude Code 會話、合規、事件回應、程式碼審查。
員工入職、醫療、物流、房地產、IoT。
API SOP、DevOps、招募、保險、供應鏈。
藍綠部署、補償交易、滴灌式行銷。
合併 245 個工作流程(171KB)至 messages/zh-TW/workflow-data.json。
修復 home.json 和 hub.json 中損壞的中文字元。
測試所有 zh-TW 頁面,驗證中文顯示正常,英文不受影響。
使用者檢查 localhost:3000/zh-TW 的完整中文翻譯覆蓋率。
osop_version: "1.0"
id: "session-complete-i18n-zh-tw"
name:"OSOP 官網完整繁體中文國際化"
description:"完整的 OSOP 網站 i18n 覆蓋:翻譯所有 UI 元件、頁面內容、YAML 展示區,以及 245 個工作流程庫條目,從英文翻譯為繁體中文。"
nodes:
- id: "user_request"
type: "human"
subtype: "input"
name: "使用者要求完整中文翻譯"
description: "使用者發現切換中文後仍有許多區域顯示英文。"
- id: "explore_i18n"
type: "agent"
subtype: "explore"
name: "探索 i18n 架構"
description: "探索 next-intl 設定、訊息檔案、路由設定及所有頁面元件。"
- id: "identify_gaps"
type: "agent"
subtype: "explore"
name: "識別未翻譯字串"
description: "在首頁、optimize、sop-doc、hub、OsopCodeBlock、DocsNav、部落格中發現硬編碼英文。"
- id: "plan_implementation"
type: "agent"
subtype: "planner"
name: "設計翻譯計畫"
description: "建立 6 步驟計畫:共用 UI 鍵值、元件、頁面、YAML 內容。"
- id: "create_namespaces"
type: "mcp"
subtype: "tool"
name: "建立翻譯命名空間"
description: "為 en 和 zh-TW 建立 optimize、sop-doc、hub 訊息檔案。"
- id: "translate_page_content"
type: "mcp"
subtype: "tool"
name: "翻譯頁面內容"
description: "為首頁、optimize、sop-doc、hub、版面頁尾新增翻譯鍵值。"
- id: "translate_ui_components"
type: "mcp"
subtype: "tool"
name: "翻譯 UI 元件"
description: "以 useTranslations 更新 OsopCodeBlock、DocsNav、部落格。"
- id: "translate_yaml_showcases"
type: "mcp"
subtype: "tool"
name: "翻譯 YAML 展示區"
description: "3 個頁面共 8 個 YAML 區塊現在顯示中文節點名稱。"
- id: "fix_icu_escaping"
type: "agent"
subtype: "llm"
name: "修復 ICU 變數跳脫"
description: "為 API 路徑中的大括號加上跳脫,防止 next-intl 解析錯誤。"
- id: "build_translate_infra"
type: "mcp"
subtype: "tool"
name: "建構翻譯基礎設施"
description: "建立 translate.ts、get-translated.ts 用於執行時 YAML 翻譯。"
- id: "extract_strings"
type: "cli"
subtype: "script"
name: "從 245 個工作流程提取 2126 個字串"
description: "將所有可翻譯的 name/description 字串提取至 workflow-data.json。"
- id: "translate_coordinator"
type: "agent"
subtype: "coordinator"
name: "協調 4 個平行翻譯器"
description: "分成 4 個批次並派遣平行翻譯代理。"
- id: "translate_batch_0"
type: "agent"
subtype: "worker"
name: "翻譯批次 0(62 個工作流程)"
description: "Claude Code 會話、合規、事件回應、程式碼審查。"
- id: "translate_batch_1"
type: "agent"
subtype: "worker"
name: "翻譯批次 1(62 個工作流程)"
description: "員工入職、醫療、物流、房地產、IoT。"
- id: "translate_batch_2"
type: "agent"
subtype: "worker"
name: "翻譯批次 2(62 個工作流程)"
description: "API SOP、DevOps、招募、保險、供應鏈。"
- id: "translate_batch_3"
type: "agent"
subtype: "worker"
name: "翻譯批次 3(59 個工作流程)"
description: "藍綠部署、補償交易、滴灌式行銷。"
- id: "merge_translations"
type: "cli"
subtype: "script"
name: "合併 4 個批次至 workflow-data.json"
description: "合併 245 個工作流程(171KB)至 messages/zh-TW/workflow-data.json。"
- id: "fix_garbled_chars"
type: "mcp"
subtype: "tool"
name: "修復 3 個亂碼 Unicode 字元"
description: "修復 home.json 和 hub.json 中損壞的中文字元。"
- id: "verify_all_pages"
type: "cicd"
subtype: "test"
name: "驗證所有頁面回傳 200"
description: "測試所有 zh-TW 頁面,驗證中文顯示正常,英文不受影響。"
- id: "user_review"
type: "human"
subtype: "review"
name: "使用者審核結果"
description: "使用者檢查 localhost:3000/zh-TW 的完整中文翻譯覆蓋率。"
edges:
- from: "user_request"
to: "explore_i18n"
mode: "sequential"
- from: "explore_i18n"
to: "identify_gaps"
mode: "sequential"
- from: "identify_gaps"
to: "plan_implementation"
mode: "sequential"
- from: "plan_implementation"
to: "create_namespaces"
mode: "sequential"
- from: "create_namespaces"
to: "translate_page_content"
mode: "parallel"
- from: "create_namespaces"
to: "translate_ui_components"
mode: "parallel"
- from: "translate_page_content"
to: "translate_yaml_showcases"
mode: "sequential"
- from: "translate_yaml_showcases"
to: "fix_icu_escaping"
mode: "fallback"
- from: "fix_icu_escaping"
to: "build_translate_infra"
mode: "sequential"
- from: "build_translate_infra"
to: "extract_strings"
mode: "sequential"
- from: "extract_strings"
to: "translate_coordinator"
mode: "sequential"
- from: "translate_coordinator"
to: "translate_batch_0"
mode: "spawn"
- from: "translate_coordinator"
to: "translate_batch_1"
mode: "spawn"
- from: "translate_coordinator"
to: "translate_batch_2"
mode: "spawn"
- from: "translate_coordinator"
to: "translate_batch_3"
mode: "spawn"
- from: "translate_batch_0"
to: "merge_translations"
mode: "sequential"
- from: "translate_batch_1"
to: "merge_translations"
mode: "sequential"
- from: "translate_batch_2"
to: "merge_translations"
mode: "sequential"
- from: "translate_batch_3"
to: "merge_translations"
mode: "sequential"
- from: "merge_translations"
to: "fix_garbled_chars"
mode: "sequential"
- from: "fix_garbled_chars"
to: "verify_all_pages"
mode: "sequential"
- from: "translate_ui_components"
to: "verify_all_pages"
mode: "sequential"
- from: "verify_all_pages"
to: "user_review"
mode: "sequential"