From 37097aeb017b4f8fb7e1ddaf675f734957591479 Mon Sep 17 00:00:00 2001 From: Jasmine Tseng <33498014+j4092627@users.noreply.github.com> Date: Thu, 2 Apr 2026 21:07:44 +0800 Subject: [PATCH 1/3] amazing mandarin --- README.md | 60 +++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 0e05f01..badffa7 100644 --- a/README.md +++ b/README.md @@ -4,20 +4,20 @@ pchome-cli

-快速、易於整合腳本的 PChome 24h 購物命令列工具。支援商品搜尋、檢視商品詳情、比較多項商品以及取得商品推薦。內建 JSON 優先輸出、適合人類閱讀的表格格式,以及標準化的資料結構(Schema)。 +快速且易於整合腳本的 PChome 24h 商品查詢 CLI 工具。支援商品搜尋、檢視商品詳情、商品比較與推薦功能。內建 JSON 優先輸出、人類可讀的表格格式,以及標準化的資料結構(Schema)。 ## 功能特色 -- **搜尋 (Search)** - 支援透過關鍵字搜尋商品,並可依照品牌、價格區間、評價、庫存狀態、24h 到貨、排序方式進行篩選,同時支援自訂輸出欄位 -- **檢視 (View)** - 顯示詳細的商品資訊,包含規格、圖片以及相關警告提示 -- **推薦 (Recommend)** - 根據指定商品取得相關的推薦商品,並可選擇顯示推薦原因 -- **比較 (Compare)** - 並排比較多項商品,支援自訂顯示欄位 -- **建議 (Suggest)** - 提供搜尋關鍵字的自動補全與建議 -- **多種輸出格式** - 支援適合閱讀的文字表格格式、供腳本使用的 JSON 格式,以及適合串流或 AI 代理程式(Agent)整合的 NDJSON 格式 -- **標準化資料結構 (Schema)** - 無論語系為何,皆維持穩定的英文欄位鍵值(`v1`),確保 AI 代理程式或腳本整合不會因語系切換而失效 +- **搜尋 (Search)** - 透過關鍵字搜尋商品,可依照品牌、價格區間、評價、庫存狀態、24h 到貨、排序方式進行篩選,同時支援自訂輸出欄位 +- **檢視 (View)** - 顯示商品資訊,包含規格、圖片以及相關警告 +- **推薦 (Recommend)** - 根據商品取得相關商品推薦,並可選擇顯示推薦原因 +- **比較 (Compare)** - 比較多項商品,支援自訂顯示欄位 +- **建議 (Suggest)** - 關鍵字自動補全與建議 +- **多種輸出格式** - 包含適合閱讀的文字表格、供腳本使用的 JSON 格式,以及供串流或 AI agent 整合的 NDJSON 格式 +- **標準化資料結構 (Schema)** - 無論語系皆維持英文欄位鍵值(`v1`),確保 agent 或腳本整合不受語系切換影響 - **多國語系 (i18n)** - 支援繁體中文(預設)與英文介面 -- **彈性的商品輸入格式** - 支援直接輸入商品編號(例如 `DRAA5K-A900JOK9O`)、帶有後綴的編號(例如 `DRAA5K-A900JOK9O-000`),或是完整的 PChome 商品網址 -- **高度可設定** - 可透過 `~/.pchome/config.toml` 設定各指令的預設值、欄位排序以及輸出偏好 +- **商品輸入格式** - 支援直接輸入商品編號(例如 `DRAA5K-A900JOK9O`)、含後綴的編號(例如 `DRAA5K-A900JOK9O-000`),或是完整的 PChome 商品網址 +- **設定** - 可透過 `~/.pchome/config.toml` 設定各指令預設值、欄位排序以及輸出偏好 ## 安裝方式 @@ -34,9 +34,9 @@ scoop bucket add oliyy https://github.com/oliyy/scoop-bucket.git scoop install oliyy/pchome-cli ``` -### 預先編譯的二進位檔 (Prebuilt Binaries) +### 執行檔 (Prebuilt Binaries) -您可以從 [GitHub Releases](https://github.com/oliy/pchome-cli/releases) 下載符合您作業系統的壓縮檔,解壓縮後將 `pchome` 放置於系統的 `PATH` 路徑下。 +從 [GitHub Releases](https://github.com/oliy/pchome-cli/releases) 下載壓縮檔,解壓縮後將 `pchome` 放置於系統 `PATH` 路徑下。 ### 從原始碼編譯 @@ -60,8 +60,8 @@ go install github.com/oliy/pchome-cli/cmd/pchome@latest 取得協助: -- `pchome --help` 會顯示最上層的指令群組。 -- 若要查看特定指令的說明,可使用 `pchome --help`。 +- `pchome --help` 顯示最上層的指令群組。 +- 使用 `pchome --help` 查看特定指令說明。 ## 快速開始 @@ -118,7 +118,7 @@ pchome view https://24h.pchome.com.tw/prod/DRAA5K-A900JOK9O # 基本推薦 pchome recommend DMBL53-A900JDNJS --top 8 -# 顯示每項商品的推薦原因 +# 顯示商品的推薦原因 pchome recommend DMAB3X-A900EVNNM --top 10 --why ``` @@ -139,14 +139,14 @@ pchome suggest "掃地機" `PRODUCT` 參數支援以下格式: - 原始商品編號:`DRAA5K-A900JOK9O` -- 帶後綴的商品編號:`DRAA5K-A900JOK9O-000` -- 完整的 PChome 商品網址:`https://24h.pchome.com.tw/prod/DRAA5K-A900JOK9O` +- 有後綴的商品編號:`DRAA5K-A900JOK9O-000` +- PChome 商品網址:`https://24h.pchome.com.tw/prod/DRAA5K-A900JOK9O` ## 輸出格式 ### 文字 (Text) -預設選項,以簡潔的表格呈現適合人類閱讀的格式: +以簡潔的表格呈現,方便人類閱讀 (預設): ```bash pchome search "掃地機器人" --limit 3 @@ -154,7 +154,7 @@ pchome search "掃地機器人" --limit 3 ### JSON -適合腳本與自動化流程的機器可讀格式: +輸出機器可讀格式,方便腳本與自動化流程使用: ```bash pchome search "掃地機器人" --limit 3 --format json @@ -163,7 +163,7 @@ pchome view DRAA5K-A900JOK9O --format json ### NDJSON -每行一個 JSON 物件,非常適合串流處理與 AI 代理程式整合: +每行一筆資料,適用於串流處理與 agent 整合: ```bash pchome search "掃地機器人" --limit 5 --format ndjson @@ -172,7 +172,7 @@ pchome recommend DMBL53-A900JDNJS --top 5 --format ndjson `ndjson` 格式支援 `search`、`recommend`、`compare` 與 `suggest` 指令。 -資料輸出至 stdout,錯誤訊息與進度則輸出至 stderr,方便您進行管線(Piping)處理: +將資料輸出至 stdout,錯誤訊息與進度則輸出至 stderr,方便進行管線(Piping)處理: ```bash pchome search "掃地機器人" --format json | jq '.products[] | select(.price < 10000)' @@ -180,13 +180,13 @@ pchome search "掃地機器人" --format json | jq '.products[] | select(.price ## 設定與組態 -在啟動時,`pchome` 會確認以下路徑的設定檔是否存在: +在啟動時,`pchome`會確認設定檔是否存在以下路徑: ```bash ~/.pchome/config.toml ``` -若檔案不存在,系統會自動建立並填入所有預設設定。 +若檔案不存在,系統會自動建立並填入所有預設值。 設定優先順序: @@ -236,17 +236,17 @@ token = "" 備註: -- `columns = []` 代表「使用該指令的內建預設欄位排序」。 -- 若您設定了 `columns`,該列表將會成為該指令的預設顯示欄位。 +- `columns = []` 代表「使用該指令的預設欄位排序」。 +- 更改 `columns` 後,該列表即為預設欄位順序。 - `i18n.language` 目前支援 `zh-TW` 與 `en`。 -- 設定載入器會拒絕未知的鍵值,以防止拼寫錯誤被靜默忽略。 +- 為避免拼寫錯誤被靜默忽略,載入器會拒絕未知鍵值。 ## 實際應用範例 ### 搜尋並篩選商品 ```bash -# 帶有價格區間與庫存篩選的搜尋 +# 價格區間與庫存篩選的搜尋 pchome search "掃地機器人" --min-price 5000 --max-price 15000 --in-stock # 依照品牌與最低評價進行篩選 @@ -256,16 +256,16 @@ pchome search "掃地機器人" --brand Roborock --min-rating 4.8 pchome search "掃地機器人" --arrival-24h --sort price-asc ``` -### 取得附帶原因的推薦商品 +### 取得推薦商品的原因 ```bash pchome recommend DMAB3X-A900EVNNM --top 10 --why ``` -### 將 JSON 輸出管線連接至 jq +### 將 JSON 輸出給 jq 處理 ```bash -# 擷取低於特定價格門檻的商品名稱 +# 取得低於特定價格的商品名稱 pchome search "掃地機器人" --format json | jq '.products[] | select(.price < 10000) | .name' ``` From 979f4764f67bdca0a07daa81323de3fcb59988d7 Mon Sep 17 00:00:00 2001 From: Jasmine Tseng <33498014+j4092627@users.noreply.github.com> Date: Fri, 3 Apr 2026 08:55:07 +0800 Subject: [PATCH 2/3] fix mandarin --- pkg/i18n/i18n.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/pkg/i18n/i18n.go b/pkg/i18n/i18n.go index 331b9b0..793b6dd 100644 --- a/pkg/i18n/i18n.go +++ b/pkg/i18n/i18n.go @@ -230,11 +230,11 @@ var translations = map[Language]map[Key]string{ RootFlagFormat: "輸出格式:text|json|ndjson", RootFlagSchemaVersion: "機器可讀輸出的 schema 版本", RootFlagTimeout: "API 請求逾時時間", - RootFlagNameWidth: "文字輸出時的商品名稱欄位寬度", + RootFlagNameWidth: "商品名稱欄位寬度", SearchShort: "搜尋商品", SearchExample: " pchome search \"掃地機器人\" --min-price 5000 --max-price 15000 --in-stock", - SearchFlagCategory: "分類編號", + SearchFlagCategory: "分類識別碼", SearchFlagBrand: "品牌篩選(部分符合即可)", SearchFlagSort: "排序方式:relevance(相關度)|price-asc(價格低至高)|price-desc(價格高至低)|newest(最新上架)|best-selling(最暢銷)", SearchFlagPage: "起始頁碼", @@ -247,8 +247,8 @@ var translations = map[Language]map[Key]string{ SearchFlagArrival24h: "只顯示支援 24h 到貨的商品", SearchFlagColumns: "以逗號分隔的顯示欄位 (#,price,list,discount,rating,reviews,24h,qty,stock,brand,name,id,url,desc)", SearchFlagShowURL: "在文字輸出中包含商品網址", - SearchFlagCompact: "在文字輸出中縮減商品名稱欄位寬度", - SearchFlagWide: "在文字輸出中增加商品名稱欄位寬度", + SearchFlagCompact: "使用較窄的商品名稱欄位", + SearchFlagWide: "使用較寬的商品名稱欄位", ViewShort: "檢視商品詳情", ViewExample: " pchome view https://24h.pchome.com.tw/prod/DRAA5K-A900JOK9O", @@ -260,15 +260,15 @@ var translations = map[Language]map[Key]string{ RecommendFlagColumns: "以逗號分隔的顯示欄位 (#,score,price,list,discount,rating,reviews,24h,qty,stock,brand,name,id,url,why)", RecommendFlagShowURL: "在文字輸出中包含商品網址", RecommendFlagShowWhy: "在文字輸出中顯示推薦原因", - RecommendFlagCompact: "在文字輸出中縮減商品名稱欄位寬度", - RecommendFlagWide: "在文字輸出中增加商品名稱欄位寬度", + RecommendFlagCompact: "使用較窄的推薦商品名稱欄位", + RecommendFlagWide: "使用較寬的推薦商品名稱欄位", CompareShort: "比較多項商品", CompareExample: " pchome compare DMBL53-A900JDNJS DMBL1C-A900JA04J", CompareFlagColumns: "以逗號分隔的顯示欄位 (#,price,list,discount,rating,reviews,24h,qty,stock,brand,name,id,url)", CompareFlagShowURL: "在文字輸出中包含商品網址", - CompareFlagCompact: "在文字輸出中縮減商品名稱欄位寬度", - CompareFlagWide: "在文字輸出中增加商品名稱欄位寬度", + CompareFlagCompact: "使用較窄的比較商品名稱欄位", + CompareFlagWide: "使用較寬的比較商品名稱欄位", SuggestShort: "提供搜尋建議", SuggestExample: " pchome suggest \"掃地機\"", @@ -287,13 +287,13 @@ var translations = map[Language]map[Key]string{ FieldSalesName: "商品名稱", FieldNick: "簡稱", FieldTagline: "促銷標語", - FieldDescription: "商品特色", - FieldPrice: "網路價", - FieldListPrice: "市價", + FieldDescription: "商品描述", + FieldPrice: "售價", + FieldListPrice: "原價", FieldLowestObserved: "歷史低價", FieldDiscount: "折扣", FieldRating: "評價", - FieldAvailability: "供貨狀態", + FieldAvailability: "庫存狀態", FieldFlags: "活動標籤", FieldCategories: "分類", FieldBrandAliases: "品牌別名", @@ -316,21 +316,21 @@ var translations = map[Language]map[Key]string{ FilterMaxPrice: "最高價", FilterMinRating: "最低評價", FilterInStock: "有庫存", - FilterArrival24h: "24h 到貨", + FilterArrival24h: "24h到貨", HeaderIndex: "#", HeaderPrice: "網路價", HeaderList: "市價", HeaderDiscount: "折扣%", HeaderRating: "評價", - HeaderReviews: "評價數", + HeaderReviews: "評價數量", Header24h: "24h", HeaderQty: "庫存", HeaderBrand: "品牌", HeaderName: "商品名稱", HeaderProductID: "商品編號", HeaderURL: "網址", - HeaderDescription: "商品特色", + HeaderDescription: "商品描述", HeaderScore: "相關度", HeaderWhy: "推薦原因", HeaderSuggestion: "搜尋建議", From e6fd7f3b337a02fb19b24b796e992c7f7d0637a7 Mon Sep 17 00:00:00 2001 From: Oliyy Date: Mon, 6 Apr 2026 12:25:50 +0800 Subject: [PATCH 3/3] chore: update tests to match new strings --- cmd/testdata/help/root_zh_tw.golden | 2 +- cmd/testdata/render/product_detail_zh_tw.golden | 6 +++--- cmd/testdata/render/search_zh_tw.golden | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/testdata/help/root_zh_tw.golden b/cmd/testdata/help/root_zh_tw.golden index 8aa27a9..3092147 100644 --- a/cmd/testdata/help/root_zh_tw.golden +++ b/cmd/testdata/help/root_zh_tw.golden @@ -22,7 +22,7 @@ 選項: --format string 輸出格式:text|json|ndjson (default "text") -h, --help 顯示 pchome 的說明 - --name-width int 文字輸出時的商品名稱欄位寬度 (default 30) + --name-width int 商品名稱欄位寬度 (default 30) --schema-version string 機器可讀輸出的 schema 版本 (default "v1") --timeout duration API 請求逾時時間 (default 20s) -v, --version 顯示 pchome 的版本資訊 diff --git a/cmd/testdata/render/product_detail_zh_tw.golden b/cmd/testdata/render/product_detail_zh_tw.golden index 7ede70f..def03bb 100644 --- a/cmd/testdata/render/product_detail_zh_tw.golden +++ b/cmd/testdata/render/product_detail_zh_tw.golden @@ -3,10 +3,10 @@ Micron Crucial X10 網址: https://24h.pchome.com.tw/prod/DRAA5K-A900JOK9O 品牌: Micron 商品名稱: Crucial X10 1TB -網路價: 4,340 -市價: 5,999 +售價: 4,340 +原價: 5,999 折扣: 28% 評價: 5(4 則評價) -供貨狀態: 庫存=9 | 24h=Y | 出貨=Consign +庫存狀態: 庫存=9 | 24h=Y | 出貨=Consign 品牌別名: Micron, 美光 主圖: https://example.com/image.jpg diff --git a/cmd/testdata/render/search_zh_tw.golden b/cmd/testdata/render/search_zh_tw.golden index 597f701..276fdda 100644 --- a/cmd/testdata/render/search_zh_tw.golden +++ b/cmd/testdata/render/search_zh_tw.golden @@ -1,4 +1,4 @@ 搜尋 "掃地機器人" | 傳回 1 筆(共 100 筆)| 第 1 頁 | 已掃描 1 頁 | 排序=relevance - # | 網路價 | 評價 | 評價數 | 24h | 庫存 | 品牌 | 商品名稱 | 商品編號 - ---|--------|------|--------|-----|------|--------|---------------------------|------------------ - 1 | 6,999 | 4.9 | 33 | Y | 20 | Xiaomi | 小米 Xiaomi 掃拖機器人H40 | DMBL53-A900JDNJS + # | 網路價 | 評價 | 評價數量 | 24h | 庫存 | 品牌 | 商品名稱 | 商品編號 + ---|--------|------|----------|-----|------|--------|---------------------------|------------------ + 1 | 6,999 | 4.9 | 33 | Y | 20 | Xiaomi | 小米 Xiaomi 掃拖機器人H40 | DMBL53-A900JDNJS