Troubleshooting
Mga common issues at solutions para sa i18n-rosetta.
API & Authentication
"OPENROUTER_API_KEY not found"
Kailangan po ng Rosetta ng API key para sa LLM translation. I-set ito bilang environment variable:
export OPENROUTER_API_KEY="sk-or-v1-..."
O kaya sa isang .env file (kung naglo-load ang project niyo ng .env files):
OPENROUTER_API_KEY=sk-or-v1-...
Kung Google Translate API key lang ang meron kayo, mag-a-auto-detect ang rosetta at gagamitin ang Google Translate bilang default method. Hindi na kailangan ng config change.
"401 Unauthorized" mula sa OpenRouter
Invalid o expired na po ang inyong API key. I-verify ito sa openrouter.ai/keys.
"429 Too Many Requests" / Rate Limiting
Hina-handle ng Rosetta ang rate limits internally gamit ang exponential backoff. Kung palagi kayong nakaka-hit ng rate limits:
- Bawasan ang batch size sa inyong config:
{ "batchSize": 15 }
- Gumamit ng model na may mas mataas na rate limits (halimbawa, may generous limits ang
google/gemini-3.5-flash) - Gumamit ng mas mura/mabilis na method para sa high-volume pairs — walang rate limits ang Google Translate:
{ "pairs": { "en:it": { "method": "google-translate" } } }
Model Not Found / 404 Errors
Bina-validate ng direct LLM providers (openai, anthropic, gemini) ang inyong model string sa first use. Kung makakita kayo ng warning:
"looks like an OpenRouter path" — Gumagamit po kayo ng OpenRouter-format model (google/gemini-3.5-flash) sa isang direct provider. Gumagamit ng bare model names ang mga direct providers:
- { "method": "gemini", "model": "google/gemini-3.5-flash" }
+ { "method": "gemini", "model": "gemini-2.5-flash" }
O kaya mag-switch sa llm method para magamit ang OpenRouter:
{ "method": "llm", "model": "google/gemini-3.5-flash" }
"is an Anthropic/OpenAI/Gemini model" — Nagse-send po kayo ng model sa maling provider:
- { "method": "gemini", "model": "claude-sonnet-4-6" }
+ { "method": "anthropic", "model": "claude-sonnet-4-6" }
"not found in available models" — Baka deprecated o misspelled ang model. Fini-fetch ng Rosetta ang live model list ng provider at nagsu-suggest ng alternatives. I-check ang docs ng provider para sa current model names.
:::tip Nangyayari ang model deprecation
Regular na nagre-retire ng model names ang mga providers. Kung biglang mag-fail ang translations pagkatapos ng isang provider update, i-check ang [WARN] output — ipapakita nito sa inyo ang mga current alternatives.
:::
Translation Quality
Nag-e-echo sa source language ang translations
Sinasalo ito ng quality gate. Kung identical sa English source ang translation, nire-reject ito at nire-retry. Kung mag-persist ito:
- I-check ang model — May mga models na poor ang performance para sa specific language pairs
- Magdagdag ng register instructions — Sabihin sa model kung anong language ang ipo-produce:
{"languages": {"ja": { "name": "Japanese", "register": "Polite/formal Japanese" }}}
- Subukan ang ibang model — Mag-switch mula
gpt-4o-minipapuntanggpt-4oogoogle/gemini-2.5-pro
Wrong script output (halimbawa, Latin text para sa Japanese)
Sinasalo ng script compliance check ng quality gate ang karamihan sa mga cases. Kung mag-persist ito:
- I-verify kung tama ang locale code (
ja, hindijp) - Magdagdag ng explicit script instructions sa
registerfield:{ "register": "Japanese using hiragana, katakana, and kanji" }
Hallucination patterns sa output
Sinasalo ng hallucination loop detector ang repeated trigram patterns (halimbawa, "hello hello hello"). Kung garbled ang output pero pumasa sa detector:
- Bawasan ang batch size — Nagpo-produce ng mas focused na output ang smaller batches
- Gumamit ng mas malakas na model — Mas less mag-hallucinate ang larger models sa non-Latin scripts
- Magdagdag ng coaching data — Nagsisilbing anchor sa translation ang dictionary terms
File & Format Issues
"No locale files found"
Nag-a-auto-detect ng locale files ang Rosetta. Kung hindi nito mahanap:
- I-check ang
localesDir— Dapat naka-point ito sa directory na naglalaman ng locale files:{ "localesDir": "./locales" } - I-check ang file naming — Dapat naka-name ang files by locale code:
en.json,fr.json, atbp. - I-check ang format — Supported formats: JSON, nested JSON, YAML, TOML
Lock file conflicts
Kung mapunta sa bad state ang .i18n-rosetta.lock:
# Reset the lock file (next sync will retranslate everything)
rm .i18n-rosetta.lock
npx i18n-rosetta sync
Kapag dinelete po ang lock file, ibig sabihin ire-retranslate ng next sync ang lahat ng keys, hindi lang ang mga nagbago. May API cost implications po ito para sa large projects.
Pag-retranslate ng specific keys
Kung mali ang individual translations at gusto niyo silang i-force na ma-retranslate nang hindi dine-delete ang lock file:
# Re-translate a single key
npx i18n-rosetta sync --force-keys "hero.title"
# Re-translate multiple keys
npx i18n-rosetta sync --force-keys "nav.home,nav.about,footer.copyright"
Ino-override ng --force-keys flag ang lock file hash check para sa mga specific keys na iyon, kaya nafo-force ang re-translation nang hindi naaapektuhan ang ibang keys.
Nako-corrupt ng content translation ang code blocks
Hindi po dapat ito mangyari — naka-shield ang code blocks bago ang translation. Kung mangyari man ito:
- I-verify kung gumagamit ng standard fencing (triple backticks) ang code block
- I-check kung may unclosed code blocks sa source Markdown
- Mag-file ng issue — bug po ito sa sentinel shielding system
CLI Issues
Hindi nade-detect ng --watch ang changes
Gumagamit ng Node.js native fs.watch ang file watching. Known issues:
- Network drives — Hindi reliable na gumagana ang
fs.watchsa NFS/SMB mounts - Docker volumes — Gumamit ng polling mode o i-run ang rosetta sa loob ng container
- Large directories — Minomonitor ng watcher ang
localesDirrecursively; baka mag-exceed sa OS limits ang very deep trees
Nagra-run ng old version ang npx
# Clear the npx cache
npx --yes i18n-rosetta@latest sync
O kaya i-install globally:
npm install -g i18n-rosetta
i18n-rosetta sync
Performance
Mabagal ang sync para sa maraming languages
By default, sequentially tina-translate ng Rosetta ang pairs. Para pabilisin ang multi-language syncs:
- Gumamit ng Google Translate para sa high-volume pairs — 10–50× itong mas mabilis kaysa sa LLM translation
- Taasan ang batch size (hanggang 50, default ay 30):
{ "batchSize": 50 }
- Gumamit ng mabilis na model — Significantly mas mabilis ang
gpt-4o-minikaysa sagpt-4o
High API costs
- I-check ang batch sizes — Larger batches = fewer API calls = lower cost
- Gumamit ng prompt caching — Ini-split ng Rosetta ang system/user messages para sa cache hits sa Anthropic at Google models
- Gumamit ng Google Translate para sa Tier 2 languages — Tingnan ang Translate 30 Languages cookbook
Stuck pa rin?
- GitHub Issues — Mag-search ng existing issues o mag-file ng bago
- Architecture Docs — Intindihin ang system design
- Quality Gate — Paano gumagana ang validation under the hood