Baidu Text Translate
by @baidu-translate
Translate text using Baidu AI Translation API via trans-cli with Baidu-specific language codes, API key management, error handling, and environment diagnostics.
clawhub install baidu-text-translateπ About This Skill
name: baidu-text-translate description: Use this skill whenever you need to translate text with the trans-cli tool (Baidu Translation AI API). Covers JSON output contract, Baidu-specific language codes (jp/kor/fra/spa/ara β not ISO defaults), exit code semantics, error decision tree, first-time API key setup, QUOTA_EXCEEDED / AUTH_FAILED recovery, environment self-diagnosis via
trans doctor, and listing supported languages via trans languages. Trigger on any of: running trans text, shell pipelines with translation, trans-cli errors, API key configuration, trans doctor checks, or looking up language codes.
homepage: https://fanyi.baidu.com
metadata: {"clawdbot":{"emoji":"π","requires":{"bins":["trans"],"env":["TRANS_API_KEY"]},"install":[{"id":"npm","kind":"npm","package":"@bdtrans/trans-cli","bins":["trans"],"label":"Install trans-cli (npm)"}]}}
baidu_text_translate β Agent Reference
trans text wraps the Baidu AI Translation API. Use --json β it separates
success (stdout) from errors (stderr) and gives you structured fields to act on.
trans text --json "δ½ ε₯½δΈη" # auto-detect β English
trans text --json --from zh --to jp "δ½ ε₯½" # explicit languages
trans text --json --to fra --reference "δ½Ώη¨ζ£εΌθ―ζ°" "δ½ ε₯½" # custom instruction
echo "ζ©δΈε₯½" | trans text --json # stdin pipe
Environment Diagnosis
Before translating, verify the environment with trans doctor:
trans doctor # human-readable output
trans doctor --json # JSON output for Agent parsing
JSON contract (stdout):
{
"checks": [
{"name":"api_key", "ok":true, "source":"env/config", "message":"configured"},
{"name":"connectivity","ok":true, "latency_ms":243, "message":"reachable"},
{"name":"account", "ok":true, "message":"valid"}
],
"all_ok": true
}
| Exit | all_ok | Meaning |
|------|----------|---------|
| 0 | true | All checks passed β ready to translate |
| 2 | false | At least one check failed β inspect checks[].ok |
When a check fails, help_url in the failing check points to the fix:
api_key.ok:false β set TRANS_API_KEY (see Configuration below)account.ok:false β key invalid/expired or quota exhaustedRun trans doctor --json as the first step when diagnosing any trans-cli failure.
JSON Contract
Success (stdout, exit 0):
{"from":"zh","to":"en","source":"δ½ ε₯½","translated":"Hello"}
| Field | Note |
|-------|------|
| from | API-detected language β may differ from --from auto |
| to | Target language |
| source | Original input |
| translated | Result |
Error (stderr, exit β 0):
{"code":"AUTH_FAILED","message":"β¦","help_url":"https://β¦","raw_code":"52001"}
help_url and raw_code are omitted when not applicable.
Error Decision Tree
| Exit | code | Cause | Action |
|------|--------|-------|--------|
| 0 | β | OK | Use translated |
| 1 | INVALID_INPUT | Empty text | Fix input, don't retry |
| 1 | INVALID_LANGUAGE | Wrong lang code (e.g. ja β should be jp) | Fix --to/--from, see Language Codes below |
| 2 | CONFIG_MISSING | TRANS_API_KEY not set | Stop β run trans doctor --json then guide user to set up API key |
| 2 | AUTH_FAILED | Key invalid/expired (raw_code 52001β52003) | Stop β run trans doctor --json then guide user to API key page |
| 3 | QUOTA_EXCEEDED | Balance = 0 | Stop β guide user to recharge (see below) |
| 3 | RATE_LIMITED | QPS exceeded | Wait 1 s, retry once |
| 3 | API_ERROR | Unexpected API error | Retry once; if persists, report raw_code + message |
| 4 | NETWORK_ERROR | No connectivity | Retry twice with 2 s gap; if persists, report |
Exit 2 requires human intervention β the agent cannot fix auth or config. Exit 1 means the agent passed bad arguments β fix the call, not the environment.
Language Codes
Baidu does not follow ISO 639. When unsure of a code, query locally:
trans languages # full list (200+ languages)
trans languages --filter jp # search by code
trans languages --filter ζ₯θ― # search by name
trans languages --json # JSON output for Agent parsing
The six most common ISO traps:
| Baidu (correct) | ISO (wrong for Baidu) | Language |
|-----------------|----------------------|----------|
| jp | ja | Japanese |
| kor | ko | Korean |
| fra | fr | French |
| spa | es | Spanish |
| ara | ar | Arabic |
| vie | vi | Vietnamese |
Other common codes that match ISO: zh cht en ru de pt it nl hi th
Use auto for source-language auto-detection.
Configuration
Priority: --api-key flag > TRANS_API_KEY env > ~/.trans-cli/config.json
Config file field: api_key.
trans config init # create empty config skeleton (~/.trans-cli/config.json)
trans config init --force # overwrite existing config
trans config set api_key # write api_key (creates file if absent)
Getting an API Key (First-Time Setup)
Guide the user through these steps β the agent cannot do this on their behalf:
1. Open the Baidu Translation Open Platform and sign in: trans config set api_key
or set the environment variable TRANS_API_KEY
6. Verify: trans doctor --json β all_ok:true means success
Recharging (QUOTA_EXCEEDED)
Recharge portal:
Non-Obvious Behaviours
trans text hello world β "hello world"from field in JSON is the API's detected language, not the --from flag valuetrans doctor checks are short-circuit: if api_key fails, connectivity/account are skipped--reference is optional; omitting it sends no extra field to the APIβοΈ Configuration
Priority: --api-key flag > TRANS_API_KEY env > ~/.trans-cli/config.json
Config file field: api_key.
trans config init # create empty config skeleton (~/.trans-cli/config.json)
trans config init --force # overwrite existing config
trans config set api_key # write api_key (creates file if absent)