อ้างอิง CLI
คำสั่ง
champollion init Interactive setup wizard (--yes for quick defaults)
champollion sync Translate & sync all locale files
champollion watch Auto-sync when the source file changes
champollion audit List all untranslated [EN] fallback values
champollion lint Scan source code for hardcoded strings
champollion wrap Auto-wrap hardcoded strings in t() calls (with undo)
champollion seo <sub> Generate hreflang, sitemap.xml, or JSON-LD schema
champollion integrity Audit locale files for format/encoding issues
champollion verify Verify translations are present and correct (CI gate)
champollion status Show pair configuration, plugins, and quality tiers
champollion provenance Audit translation resource licensing
champollion plugin <sub> Manage method plugins (install, remove, list)
champollion fonts <sub> Download web fonts for PUA script converters
champollion leaderboard Browse and install methods from the MT Eval Arena leaderboard
champollion tm <sub> Manage Translation Memory cache (stats, clear)
champollion xliff <sub> Export/import XLIFF 1.2 for professional review
รัน champollion <command> --help เพื่อดูความช่วยเหลือโดยละเอียดสำหรับคำสั่งใดก็ได้
ตัวเลือกส่วนกลาง
--help, -h Show help (global or per-command)
--version, -v Print version and exit
--yes, -y Skip interactive prompts, use defaults
--config <path> Custom config file path
--dir <path> Override locales directory
--content-dir <path> Hugo/Docusaurus content directory for Markdown translation
--source <code> Override source locale (default: en)
--model <model> Override translation model (full slug or alias from shared/model-aliases.json)
--method <method> Translation method: llm, google-translate (default: from config)
--temperature <n> LLM temperature (0.0–2.0, default: 0.3)
--coaching-file <path> Path to free-text coaching prompt file (injected into system prompt)
--format <fmt> Locale file format: json, toml, yaml, or auto
--dry, --dry-run Preview changes without writing files
--concurrency <n> Max parallel API calls (sets both JSON and content, default: 48)
--json-concurrency <n> Max parallel locale translations for JSON keys (default: 200)
--content-concurrency <n> Max parallel API calls for content translation (default: 48)
--force-content Re-translate all content files (clears content lock)
--force-keys <keys> Comma-separated dot-notation keys to force re-translate
--no-tm Skip Translation Memory cache for this sync run
--no-verify Skip post-sync verification pass
--locale <code> Target locale (xliff export, tm clear)
--quiet Errors and warnings only — suppress banner, progress bar, and info lines
--json Machine-readable NDJSON output — one JSON object per event
init
วิซาร์ดตั้งค่าแบบโต้ตอบที่สร้าง champollion.config.json นำทางผ่านโลแคลต้นทาง ภาษาเป้าหมาย รูปแบบไฟล์ และโมเดลการแปล
champollion init # interactive wizard
champollion init --yes # skip wizard, use defaults
champollion init --yes --langs fr,de,ja # quick setup with specific languages
champollion init --source en --dir ./i18n # overrides with defaults
ตัวเลือก --langs: รายการโค้ดภาษาเป้าหมายที่คั่นด้วยเครื่องหมายจุลภาค ข้ามขั้นตอนการเลือกภาษาและใช้ค่าเริ่มต้นของ register สำหรับแต่ละภาษา รวมกับ --yes เพื่อตั้งค่าแบบไม่โต้ตอบอย่างสมบูรณ์
Language presets: เมื่อได้รับการแจ้งให้เลือกภาษาเป้าหมาย คุณสามารถพิมพ์ชื่อ preset ได้:
european→ fr, de, es, it, pt, nlasian→ ja, zh, koglobal→ fr, es, de, ja, zh, ko, pt, arnordic→ da, fi, nb, sv
ผสม preset และโค้ดแต่ละภาษา: european, ja → fr, de, es, it, pt, nl, ja
sync
แปลคีย์ที่ขาดหายไปและล้าสมัยในไฟล์โลแคลทั้งหมด รันการตรวจสอบหลัง sync โดยค่าเริ่มต้น
champollion sync # translate everything
champollion sync --dry-run # preview only
champollion sync --force-keys "hero.title" # force re-translate
champollion sync --force-keys "a.title,a.subtitle" # multiple keys
champollion sync --force-content # re-translate all Markdown/MDX
champollion sync --content-dir ./content # include Hugo Markdown
champollion sync --method google-translate # force Google Translate
champollion sync --concurrency 20 # 20 parallel API calls (both phases)
champollion sync --json-concurrency 30 # 30 parallel locale translations (JSON)
champollion sync --content-concurrency 8 # 8 parallel content translations
champollion sync --no-verify # skip post-sync verification
champollion sync --no-tm # skip cache, fresh API calls
Translation Memory: โดยค่าเริ่มต้น sync จะโหลด .champollion/tm.json และให้บริการการแปลที่แคชไว้สำหรับค่าต้นทางที่ไม่เปลี่ยนแปลง ใช้ --no-tm เพื่อข้ามแคช (มีประโยชน์เมื่อเปลี่ยนผู้ให้บริการการแปลหรือดีบักคุณภาพ) ดู Translation Memory
การตรวจจับการเปลี่ยนแปลง: champollion จัดเก็บแฮช SHA-256 ไว้ใน .champollion.lock เมื่อค่าต้นทางเปลี่ยนแปลง การ sync ครั้งถัดไปจะแปลคีย์เหล่านั้นใหม่โดยอัตโนมัติ Commit ไฟล์ lock เพื่อให้นักพัฒนาทุกคนใช้ baseline เดียวกัน
Parallelism: ทั้งการแปลคีย์ JSON และการแปลเนื้อหาทำงานแบบขนาน โลแคล JSON ถูกแปลพร้อมกัน (ค่าเริ่มต้น: 200 โลแคลพร้อมกัน) โดย batch ภายในแต่ละโลแคลก็ทำงานแบบขนานด้วย (4 batch พร้อมกัน) การแปลเนื้อหา (Markdown, MDX, บล็อกโพสต์) ทำงานในพูล work-item แบบแบน (ค่าเริ่มต้น: 48 การเรียก API พร้อมกัน) แทนที่ด้วย --json-concurrency, --content-concurrency, หรือ --concurrency (ตั้งค่าทั้งคู่)
Output: Sync แสดงแบนเนอร์เวอร์ชัน การตรวจจับรูปแบบ/เฟรมเวิร์ก การประมาณค่าใช้จ่าย และแถบความคืบหน้าต่อโลแคล:
champollion v0.1.0
[INFO] Detected format: json (auto)
[INFO] Source: en.json (2,847 keys)
[INFO] Pairs: es-MX:llm, fr:deepl
[INFO] es-MX.json — 2,847 missing
████████████████████████████████ 2,847/2,847 keys
[INFO] fr.json — 2,847 missing
████████████████████████████████ 2,847/2,847 keys
[OK] Synced 5,694 keys total.
แถบความคืบหน้าอัปเดตในตำแหน่งเดิมหลังจากแต่ละ batch (~80 คีย์) ใช้ --quiet สำหรับเฉพาะข้อผิดพลาด/คำเตือน หรือ --json สำหรับ output NDJSON ที่อ่านได้ด้วยเครื่อง ทั้งสองแบบจะซ่อนแถบความคืบหน้าและแบนเนอร์
watch
ซิงค์อัตโนมัติเมื่อไฟล์โลแคลต้นทางเปลี่ยนแปลง ทำงานจนกว่าจะหยุดด้วย Ctrl+C
champollion watch
audit
แสดงรายการค่า fallback ที่มีคำนำหน้า [EN] ทั้งหมดที่ยังไม่ได้แปลจากการรันก่อนหน้า ออกด้วยโค้ด 1 หากพบค่าใดก็ตาม — ใช้เป็น CI gate เพื่อทำให้ build ล้มเหลวเมื่อการแปลไม่สมบูรณ์
champollion audit
verify
อ่านไฟล์โลแคลทั้งหมดจากดิสก์อีกครั้งและตรวจสอบว่าการแปลมีอยู่จริงและถูกต้อง นี่คือการตรวจสอบเดียวกับที่รันโดยอัตโนมัติเมื่อสิ้นสุดทุก sync (เว้นแต่จะส่ง --no-verify)
champollion verify # verify all locale files
champollion verify --warn-only # non-blocking
champollion verify && echo "All good" # CI gate
สิ่งที่ตรวจสอบ:
- ความเท่าเทียมของคีย์ — คีย์ต้นทางทั้งหมดมีอยู่ในแต่ละเป้าหมาย
- เครื่องหมาย fallback
[EN]จากการรันก่อนหน้า - การแปลที่ว่างเปล่า
- การปฏิบัติตามสคริปต์ — โลแคลที่ไม่ใช่ Latin ควรมีการแปลที่ไม่ใช่ ASCII
- การรักษา placeholder — ICU placeholder ตรงกับต้นทาง
- ปัญหาการเข้ารหัส — เครื่องหมาย BOM, อักขระที่มองไม่เห็น
- Source echo — ค่าที่เหมือนกับต้นทาง (คำเตือน)
lint
สแกนซอร์สโค้ดเพื่อหาสตริงที่แสดงต่อผู้ใช้ที่เขียนตรงๆ ซึ่งควรใช้การเรียก i18n translation ตรวจจับเฟรมเวิร์กของคุณโดยอัตโนมัติ (next-intl, react-i18next, vue-i18n, Hugo)
champollion lint # exits 1 if issues found
champollion lint --warn-only # always exits 0
champollion lint --src ./app # custom source directory
champollion lint --min-length 4 # minimum string length to flag
สิ่งที่ตรวจจับ:
- สตริงที่เขียนตรงๆ ใน JSX text,
placeholder,alt,aria-label,title - ไฟล์ที่มีเนื้อหาสำหรับผู้ใช้แต่ไม่มีการ import เฟรมเวิร์ก i18n
- Dead key — คีย์โลแคลที่ไม่มีไฟล์ซอร์สใดอ้างอิง
- คะแนน coverage — เปอร์เซ็นต์ของสตริงที่ผ่านระบบ i18n
การยกเว้น: สร้าง .champollionignore ในรูทของโปรเจกต์ (glob pattern เช่น .gitignore)
wrap
ห่อสตริงที่เขียนตรงๆ ที่ตรวจพบโดย lint ด้วยการเรียก t() โดยอัตโนมัติ สร้างการสำรองข้อมูลอัตโนมัติก่อนแก้ไขไฟล์
champollion wrap # auto-wrap with backup
champollion wrap --dry # preview wrapping changes
champollion wrap --undo # restore from .champollion-backup/
Safety gate:
- การตรวจสอบ Git-clean (ข้ามในโหมด dry-run)
- สำรองข้อมูลอัตโนมัติไปยัง
.champollion-backup/ - แสดง diff ก่อนเขียนแต่ละไฟล์
- รองรับ
--undoเพื่อกู้คืนจากการสำรองข้อมูล
seo
สร้าง SEO artifact สำหรับเว็บไซต์หลายภาษา
champollion seo hreflang # print hreflang tags
champollion seo sitemap --base-url https://example.com --out sitemap.xml
champollion seo jsonld --base-url https://example.com # JSON-LD schema
| Subcommand | Output |
|---|---|
hreflang | แท็ก <link rel="alternate" hreflang> |
sitemap | sitemap.xml หลายภาษา |
jsonld | JSON-LD WebSite language schema |
integrity
ตรวจจับความเสียหายและความคลาดเคลื่อนในไฟล์โลแคลที่แปลแล้ว
champollion integrity # exits 1 if issues found
champollion integrity --warn-only # non-blocking
สิ่งที่ตรวจสอบ:
- ความเสียหายของ placeholder (เช่น
{name}มีอยู่ในต้นทางแต่ขาดหายในเป้าหมาย) - ปัญหาการเข้ารหัส (mojibake, Unicode ที่ไม่ถูกต้อง)
- สำเนาที่ยังไม่ได้แปล (ค่าเป้าหมายเหมือนกับต้นทาง)
- Orphaned key (คีย์ในเป้าหมายที่ไม่มีอยู่ในต้นทาง)
- ความครบถ้วนของหมวดหมู่ plural ของ ICU MessageFormat (เช่น ภาษาอาหรับต้องการ 6 หมวดหมู่)
tm
จัดการแคช Translation Memory (.champollion/tm.json) TM จัดเก็บการแปลก่อนหน้าและให้บริการในการ sync ครั้งถัดไปแทนการเรียก API
champollion tm stats # show cache statistics
champollion tm clear # clear cache (with confirmation)
champollion tm clear --yes # clear without confirmation
champollion tm clear --locale fr # clear only French entries
| Subcommand | Output |
|---|---|
stats | จำนวน entry ขนาดไฟล์ รายละเอียดต่อโลแคล |
clear | ลบไฟล์แคช (ทั้งหมดหรือต่อโลแคล) |
| ตัวเลือก | ผล |
|---|---|
--locale <code> | ล้างเฉพาะ entry สำหรับโลแคลเดียว |
--yes | ข้ามการยืนยัน |
ดู Translation Memory สำหรับวิธีการทำงานของ TM และเมื่อใดควรล้าง
xliff
Export และ import ไฟล์ XLIFF 1.2 สำหรับการตรวจสอบโดยนักแปลมืออาชีพ XLIFF คือรูปแบบการแลกเปลี่ยนสากลที่รองรับโดย CAT tool เช่น memoQ, SDL Trados และ Phrase
champollion xliff export --locale fr # export French XLIFF
champollion xliff export --locale ja --out ./review/ # custom output path
champollion xliff import .champollion/xliff/fr.xliff # import reviewed file
champollion xliff import ./reviewed.xliff --dry # preview import
| Subcommand | Output |
|---|---|
export | สร้าง .xliff จากไฟล์โลแคลต้นทางและเป้าหมาย |
import | รวมการแปลที่ตรวจสอบแล้วจาก .xliff เข้าในไฟล์โลแคล |
| ตัวเลือก | ผล |
|---|---|
--locale <code> | โลแคลเป้าหมายสำหรับ export (จำเป็น) |
--out <path> | เส้นทาง output หรือไดเรกทอรีที่กำหนดเอง |
--dry | ดูตัวอย่างการ import โดยไม่เขียนไฟล์ |
ดู การทำงานกับนักแปลมืออาชีพ สำหรับขั้นตอนการทำงานแบบเต็ม
status
แสดงการกำหนดค่าคู่ภาษา plugin ที่ติดตั้ง ระดับคุณภาพ และคะแนน benchmark
champollion status
provenance
ตรวจสอบการอนุญาตสิทธิ์ทรัพยากรการแปลสำหรับ plugin ที่ติดตั้งทั้งหมด
champollion provenance
plugin
จัดการ plugin วิธีการแปล Plugin คือสูตรการแปลที่บรรจุไว้ล่วงหน้าซึ่งติดตั้งไปยัง .champollion/methods/
champollion plugin list # show installed plugins
champollion plugin install ./my-method/ # install from local directory
champollion plugin remove crk-coached-v1 # remove a plugin
ดู Plugin Specification สำหรับรูปแบบ manifest ของ plugin
leaderboard
เรียกดู ค้นหา และติดตั้งวิธีการแปลจาก MT Eval Arena leaderboard วิธีการที่ติดตั้งจาก leaderboard มาพร้อมกับคะแนน benchmark และ MethodConfig แบบ canonical ครบถ้วน — การกำหนดค่าที่แน่นอนที่ใช้ระหว่างการประเมิน
champollion leaderboard # show leaderboard
champollion leaderboard --pair en:fr # filter by language pair
champollion leaderboard --install crk-coached-v8 # install a method plugin
champollion leaderboard --install crk-coached-v8 --apply # install + patch config
| ตัวเลือก | ผล |
|---|---|
--pair <code> | กรอง leaderboard ตามคู่ภาษา (เช่น en:fr) |
--install <name> | ติดตั้ง method plugin จาก leaderboard |
--apply | หลังติดตั้ง เพิ่ม methodPlugin ลงใน champollion.config.json โดยอัตโนมัติ |
ขั้นตอน --apply: เมื่อคุณติดตั้งด้วย --apply champollion จะเขียน method plugin ไปยัง .champollion/methods/ และ แก้ไข champollion.config.json ของคุณให้ใช้งานสำหรับคู่ภาษาที่เกี่ยวข้อง นี่คือเส้นทางที่เร็วที่สุดจาก "อะไรได้คะแนนดีที่สุด?" ไปสู่ "ฉันใช้งานมันใน production แล้ว"
fonts
ดาวน์โหลดและจัดการ PUA web font สำหรับตัวแปลงสคริปต์ภาษาสร้างสรรค์ ภาษาที่ใช้อักขระ Private Use Area (Klingon, Sindarin, Kryptonian) ต้องการ web font แบบกำหนดเองเพื่อแสดงสคริปต์ คำสั่งนี้ดาวน์โหลดจากที่เก็บ open-source ที่ได้รับการตรวจสอบแล้ว
champollion fonts list # show needed fonts
champollion fonts install # download all needed fonts
champollion fonts install --css # also generate CSS snippet
champollion fonts install --dir ./public/fonts # custom output directory
| Subcommand | Output |
|---|---|
list | แสดง PUA font ที่จำเป็นและสถานะการติดตั้ง |
install | ดาวน์โหลด font สำหรับภาษาที่กำหนดค่าไว้ |
| ตัวเลือก | ผล |
|---|---|
--dir <path> | แทนที่ไดเรกทอรี output ของ font (ตรวจจับอัตโนมัติจากประเภทโปรเจกต์) |
--css | สร้าง snippet conlang-fonts.css พร้อมกับ font |
--config <path> | เส้นทางไปยังไฟล์ config (ใช้เพื่อตรวจจับว่าภาษาใดต้องการ font) |
การตรวจจับอัตโนมัติ: ไดเรกทอรี output ถูกอนุมานจากโครงสร้างโปรเจกต์ของคุณ:
- Docusaurus →
static/fonts/หรือwebsite/static/fonts/ - Hugo →
static/fonts/ - ค่าเริ่มต้น →
public/fonts/
ตัวแปลง Unicode แบบ native (crk → Cree Syllabics, sr → Serbian Cyrillic) ไม่ ต้องการการติดตั้ง font
ดู Conlangs, Scripts & Orthography สำหรับรายละเอียด PUA font แบบเต็ม
Three-Layer Pipeline
ใช้ lint, sync, และ audit ร่วมกันเพื่อ i18n ที่แข็งแกร่ง:
{
"scripts": {
"i18n:lint": "champollion lint",
"i18n:sync": "champollion sync",
"i18n:audit": "champollion audit"
}
}
| Layer | คำสั่ง | เมื่อใด | วัตถุประสงค์ |
|---|---|---|---|
| Lint | lint | Pre-commit | บล็อก commit ที่มีสตริงเขียนตรงๆ |
| Sync | sync | Post-commit / CI | แปลคีย์ที่ขาดหายไปและเปลี่ยนแปลง |
| Verify | verify | Post-sync / CI | ยืนยันว่าการแปลมีอยู่และถูกต้อง |
| Audit | audit | ขั้นตอน Build | ทำให้การ deploy ล้มเหลวหากโลแคลใดมีเครื่องหมาย [EN] |
ดูเพิ่มเติม
- การกำหนดค่า — อ้างอิงไฟล์ config
- Translation Methods — การเลือกวิธีการต่อคู่ภาษา
- Translation Memory — การแคชและการประหยัดค่าใช้จ่าย
- การทำงานกับนักแปลมืออาชีพ — ขั้นตอนการทำงาน XLIFF
- Plugin Specification — รูปแบบ manifest ของ plugin
- คู่มือ CI/CD — การทำให้คำสั่ง CLI ทำงานอัตโนมัติใน pipeline ของคุณ
- วิธีการทำงานของ Sync — ทำความเข้าใจ sync pipeline
- Quality Gate — วิธีการตรวจสอบการแปล