Lumaktaw sa pangunahing nilalaman

Cookbook: Isalin ang 30 Wika

Palawakin ang isang proyekto mula sa iilang locale tungo sa pandaigdigang saklaw. Ipinapaliwanag ng cookbook na ito ang pagpili ng method, pag-optimize ng gastos, at CI integration para sa isang tunay na multi-language deployment.

Senaryo: Mayroon kayong SaaS app na may en, fr, es. Kailangan ninyong magdagdag ng 27 pang wika sa tatlong tier ng mga kinakailangan sa kalidad.


Hakbang 1: Ikategorya ang Inyong mga Wika

Hindi kailangan ng lahat ng 30 wika ang parehong approach. Pangkatin ang mga ito ayon sa available na kalidad ng method:

TierMga WikaMethodBakit
Tier 1 — Premiumja, ko, zh, de, ptllm (GPT-4o)Mga market na may mataas na halaga, maselang grammar
Tier 2 — Standardit, nl, pl, sv, da, fi, no, cs, ro, hu, el, tr, id, ms, th, vi, uk, bggoogle-translateMataas ang volume, mahusay na sinusuportahan ng Google
Tier 3 — Coachedcrk, oj, mi, hawllm-coached + pluginsLow-resource, nangangailangan ng pagpapatupad ng terminolohiya

Hakbang 2: I-configure Bawat Pair

champollion.config.json
{
"version": 3,
"inputLocale": "en",
"localesDir": "./locales",
"defaultMethod": "google-translate",
"model": "google/gemini-3.5-flash",
"languages": {
"ja": { "name": "Japanese", "register": "Polite/formal" },
"ko": { "name": "Korean", "register": "Formal" },
"zh": { "name": "Simplified Chinese", "register": "Neutral" },
"de": { "name": "German", "register": "Formal (Sie)" },
"pt": { "name": "Brazilian Portuguese", "register": "Informal" },
"crk": { "name": "Plains Cree (SRO)", "register": "Neutral" }
},
"pairs": {
"en:ja": { "method": "llm", "model": "openai/gpt-4o" },
"en:ko": { "method": "llm", "model": "openai/gpt-4o" },
"en:zh": { "method": "llm", "model": "openai/gpt-4o" },
"en:de": { "method": "llm", "model": "openai/gpt-4o" },
"en:pt": { "method": "llm", "model": "openai/gpt-4o" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}

Tandaan: Ang mga wikang hindi nakalista sa pairs ay nagmamana ng defaultMethod: "google-translate". Hindi ninyo kailangang ilista ang lahat ng 30.

impormasyon

Kasalukuyang dine-develop ang suporta para sa crk — tingnan ang Suportahan ang isang Low-Resource na Wika para sa status at mga gabay sa kontribusyon.

Hakbang 3: I-set Up ang mga API Key

Kakailanganin ninyo ang parehong API key para sa configuration na ito:

export OPENROUTER_API_KEY="sk-or-v1-..."
export GOOGLE_TRANSLATE_API_KEY="AIza..."

Hakbang 4: Mag-Dry Run Muna

Palaging mag-preview bago magsalin ng 30 wika:

npx champollion sync --dry

Suriin ang output. Ipapakita nito:

  • Aling mga pair ang gumagamit ng aling method
  • Ilang key ang bago/binago bawat locale
  • Tinatayang bilang ng API calls bawat tier

Hakbang 5: Patakbuhin ang Sync

npx champollion sync

Pinoproseso ng Champollion ang bawat pair nang magkakahiwalay. Mabilis ang mga Tier 2 pair na gumagamit ng Google Translate. Mas mabagal ang Tier 1 LLM pairs ngunit mas mataas ang kalidad. Ginagamit ng Tier 3 coached pairs ang coaching data ng plugin.

Incremental Updates

Pagkatapos ng initial sync, isasalin lamang ng mga susunod na run ang mga binago o bagong key:

# Only keys that changed since last sync
npx champollion sync

Sinusubaybayan ng lock file (.champollion.lock) kung ano ang naisalin na, kaya hindi na ninyo kailanman muling isasalin ang stable na content.

Hakbang 6: I-audit ang Kalidad

Tingnan ang status ng lahat ng language pairs:

npx champollion status

Naglalabas ito ng table na nagpapakita ng method, model, quality tier ng bawat pair, at kung available ang coaching data o benchmark scores.

Sinunod ba ng output ang inyong mga register?

Sa Hakbang 2, nagdeklara kayo ng register bawat wika — "Polite/formal" para sa Japanese, "Formal (Sie)" para sa German. (Bago sa inyo ang terminong ito? Ipinapaliwanag ito ng glossary sa simpleng wika.) Napupunta ang mga instruction na iyon sa translation prompt, ngunit ang prompt ay kahilingan, hindi garantiya.

Ang MT Eval Arena harness — ang parehong tool na nagpapatakbo sa public leaderboard — ay maaaring sumukat ng pagsunod sa register at style sa isang sample ng inyong mga translation. Sinusuri ng writing-style metrics nito ang bawat output laban sa inaasahang register (formal/informal markers, T–V na panghalip, mga contraction, sentence-length drift) at nag-uulat ng style_consistency_rate sa buong run. Maaari rin ninyo itong ituro sa isang custom brand-voice profile gamit ang --style-profile.

# install the harness, then run your sample corpus through it
curl -fsSL champollion.dev/harness | bash
mt-eval run --corpus my-sample.json --style-profile brand-voice.json

Dalawang tapat na paalala: ang mga metric na ito ay informational (hindi kailanman pumapasok sa composite score ng leaderboard), at ang formality detection ay marker-based — isang drift detector, hindi paghatol ng tao. Mga detalye at depinisyon ng metric: Writing-style at register metrics.

Hakbang 7: CI Integration

Idagdag sa inyong GitHub Actions workflow upang manatiling updated ang mga translation sa bawat push:

.github/workflows/i18n-sync.yml
name: Sync Translations
on:
push:
paths:
- 'locales/en/**'

jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20

- run: npm ci

- name: Sync translations
run: npx champollion sync
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
GOOGLE_TRANSLATE_API_KEY: ${{ secrets.GOOGLE_TRANSLATE_API_KEY }}

- name: Commit updated translations
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add locales/
git diff --staged --quiet || git commit -m "chore(i18n): sync translations"
git push

Pagtatantiya ng Gastos

Para sa isang proyektong may 500 source key sa 30 wika:

TierMga WikaMethodTinatayang Gastos
Tier 1 (5 wika)ja, ko, zh, de, ptGPT-4o~$2.50/full sync
Tier 2 (18 wika)it, nl, pl, atbp.Google Translate~$0.90/full sync
Tier 3 (4 wika)crk, oj, mi, hawGPT-4o-mini coached~$0.40/full sync
Kabuuan30 wikaMixed~$3.80/full sync

Ang incremental syncs (5–20 binagong key) ay nagkakahalaga lamang ng maliit na bahagi ng full sync.

Tingnan Din