Probleemoplossing
Veelvoorkomende problemen en oplossingen voor champollion.
API & Authenticatie
"OPENROUTER_API_KEY not found"
Champollion vereist een API-sleutel voor LLM-vertaling. Stel deze in als omgevingsvariabele:
export OPENROUTER_API_KEY="sk-or-v1-..."
Of in een .env-bestand (als uw project .env-bestanden laadt):
OPENROUTER_API_KEY=sk-or-v1-...
Als u alleen een Google Translate API-sleutel hebt, detecteert champollion dit automatisch en gebruikt Google Translate als standaardmethode. Er is geen configuratiewijziging nodig.
"401 Unauthorized" van OpenRouter
Uw API-sleutel is ongeldig of verlopen. Controleer deze op openrouter.ai/keys.
"429 Too Many Requests" / Snelheidsbeperking
Champollion verwerkt snelheidsbeperkingen intern met exponentiële terugval. Als u structureel tegen snelheidsbeperkingen aanloopt:
- Verklein de batchgrootte in uw configuratie:
{ "batchSize": 15 }
- Gebruik een model met hogere snelheidslimieten (bijv.
google/gemini-3.5-flashheeft ruimhartige limieten) - Gebruik een goedkopere/snellere methode voor paren met hoog volume — Google Translate heeft geen snelheidsbeperkingen:
{ "pairs": { "en:it": { "method": "google-translate" } } }
Model niet gevonden / 404-fouten
Directe LLM-providers (openai, anthropic, gemini) valideren uw modelreeks bij het eerste gebruik. Als u een waarschuwing ziet:
"looks like an OpenRouter path" — U gebruikt een model in OpenRouter-formaat (google/gemini-3.5-flash) bij een directe provider. Directe providers gebruiken kale modelnamen:
- { "method": "gemini", "model": "google/gemini-3.5-flash" }
+ { "method": "gemini", "model": "gemini-2.5-flash" }
Of schakel over naar de llm-methode om OpenRouter te gebruiken:
{ "method": "llm", "model": "google/gemini-3.5-flash" }
"is an Anthropic/OpenAI/Gemini model" — U stuurt een model naar de verkeerde provider:
- { "method": "gemini", "model": "claude-sonnet-4-6" }
+ { "method": "anthropic", "model": "claude-sonnet-4-6" }
"not found in available models" — Het model is mogelijk verouderd of verkeerd gespeld. Champollion haalt de actuele modellijst van de provider op en stelt alternatieven voor. Raadpleeg de documentatie van de provider voor actuele modelnamen.
:::tip Modelveroudering komt voor
Providers trekken modelnamen regelmatig in. Als vertalingen plotseling mislukken na een providerupdate, controleer dan de [WARN]-uitvoer — deze toont u actuele alternatieven.
:::
Vertaalkwaliteit
Vertalingen herhalen de brontaal
De kwaliteitspoort onderschept dit. Als een vertaling identiek is aan de Engelstalige bron, wordt deze afgewezen en opnieuw geprobeerd. Als het probleem aanhoudt:
- Controleer het model — Sommige modellen presteren slecht voor specifieke taalparen
- Voeg registerinstructies toe — Geef het model aan welke taal het moet produceren:
{"languages": {"ja": { "name": "Japanese", "register": "Polite/formal Japanese" }}}
- Probeer een ander model — Schakel over van
gpt-4o-mininaargpt-4oofgoogle/gemini-2.5-pro
Verkeerde scriptuitvoer (bijv. Latijnse tekst voor Japans)
De scriptconformiteitscontrole van de kwaliteitspoort onderschept de meeste gevallen. Als het probleem aanhoudt:
- Controleer of de landinstellingscode correct is (
ja, nietjp) - Voeg expliciete scriptinstructies toe in het veld
register:{ "register": "Japanese using hiragana, katakana, and kanji" }
Hallucinatiepatronen in de uitvoer
Herhaalde trigrampatronen (bijv. "hello hello hello") worden onderschept door de hallucinatielus-detector. Als de uitvoer vervormd is maar de detector passeert:
- Verklein de batchgrootte — Kleinere batches produceren meer gerichte uitvoer
- Gebruik een sterker model — Grotere modellen hallucineren minder bij niet-Latijnse scripts
- Voeg coachingdata toe — Woordenboektermen verankeren de vertaling
Bestands- en formaatproblemen
"No locale files found"
Champollion detecteert localisatiebestanden automatisch. Als deze niet gevonden worden:
- Controleer
localesDir— Moet verwijzen naar de map met localisatiebestanden:{ "localesDir": "./locales" } - Controleer de bestandsnaamgeving — Bestanden moeten worden benoemd naar landinstellingscode:
en.json,fr.json, enz. - Controleer het formaat — Ondersteunde formaten: JSON, geneste JSON, YAML, TOML
Conflicten met vergrendelingsbestanden
Als .champollion.lock in een ongeldige toestand terechtkomt:
# Reset the lock file (next sync will retranslate everything)
rm .champollion.lock
npx champollion sync
Het verwijderen van het vergrendelingsbestand betekent dat de volgende synchronisatie alle sleutels opnieuw vertaalt, niet alleen de gewijzigde. Dit heeft gevolgen voor de API-kosten bij grote projecten.
Specifieke sleutels opnieuw vertalen
Als afzonderlijke vertalingen onjuist zijn en u deze geforceerd opnieuw wilt laten vertalen zonder het vergrendelingsbestand te verwijderen:
# Re-translate a single key
npx champollion sync --force-keys "hero.title"
# Re-translate multiple keys
npx champollion sync --force-keys "nav.home,nav.about,footer.copyright"
De vlag --force-keys overschrijft de hashcontrole van het vergrendelingsbestand voor die specifieke sleutels, waardoor hervertaling wordt afgedwongen zonder andere sleutels te beïnvloeden.
Contentvertaling beschadigt codeblokken
Dit zou niet mogen gebeuren — codeblokken worden afgeschermd vóór vertaling. Als het toch optreedt:
- Controleer of het codeblok standaard afbakening gebruikt (drievoudige backticks)
- Controleer op niet-afgesloten codeblokken in de Markdown-bron
- Dien een melding in — dit is een fout in het sentinel-afschermingssysteem
CLI-problemen
--watch detecteert geen wijzigingen
Bestandsbewaking maakt gebruik van de native Node.js fs.watch. Bekende problemen:
- Netwerkschijven —
fs.watchwerkt niet betrouwbaar op NFS/SMB-koppelingen - Docker-volumes — Gebruik de peilmodus of voer champollion uit binnen de container
- Grote mappen — De bewaker monitort
localesDirrecursief; zeer diepe boomstructuren kunnen de OS-limieten overschrijden
npx voert een oude versie uit
# Clear the npx cache
npx --yes champollion@latest sync
Of installeer globaal:
npm install -g champollion
champollion sync
Prestaties
Synchronisatie is traag bij veel talen
Champollion vertaalt standaard alle landinstellingen parallel. Als de synchronisatie nog steeds traag is:
- Gebruik Google Translate voor paren met hoog volume — Het is 10–50× sneller dan LLM-vertaling
- Vergroot de batchgrootte (standaard is 80):
{ "batchSize": 120 }
- Stel gelijktijdigheid af — Parallellisme voor JSON-landinstellingen is standaard 200 en voor content 48. Als uw API-provider hogere snelheidslimieten ondersteunt:
npx champollion sync --json-concurrency 80 --content-concurrency 20
- Gebruik een snel model —
gpt-4o-miniis aanzienlijk sneller dangpt-4o
Hoge API-kosten
- Controleer batchgroottes — Grotere batches = minder API-aanroepen = lagere kosten
- Gebruik Vertaalgeheugen — TM is standaard ingeschakeld. Voer
champollion tm statsuit om te controleren of het werkt. Als u na meerdere synchronisaties 0 vermeldingen ziet, is er mogelijk iets mis met de machtigingen van uw.champollion/-map - Gebruik promptcaching — Champollion splitst systeem-/gebruikersberichten voor cache-treffers op Anthropic- en Google-modellen
- Gebruik Google Translate voor Tier 2-talen — Zie het kookboek Vertaal 30 talen
Verouderde vertalingen na het wisselen van provider
Als u overschakelt van de ene vertaalmethode naar de andere (bijv. llm naar deepl), kan de TM-cache voor sleutels waarvan de brontekst niet is gewijzigd nog steeds oude vertalingen van de vorige methode leveren. De cachesleutel bevat de methodenaam, zodat de meeste gevallen automatisch worden afgehandeld. Maar als u model binnen dezelfde methode hebt gewijzigd:
# Force fresh translations for all keys
champollion sync --no-tm
# Or clear the cache entirely and re-sync
champollion tm clear --yes
champollion sync
Zie Vertaalgeheugen voor details over het ontwerp van cachesleutels.
Nog steeds vastgelopen?
- GitHub Issues — Zoek in bestaande meldingen of dien een nieuwe in
- Architectuurdocumentatie — Begrijp het systeemontwerp
- Kwaliteitspoort — Hoe validatie intern werkt