Naar hoofdinhoud gaan

Kwaliteitspoort

Elke vertaling doorloopt een deterministische validatiepoort voordat deze naar schijf wordt geschreven. De kwaliteitspoort onderschept veelvoorkomende fouten bij machinevertalingen — geen stille terugvalmechanismen, geen onzin in uw localebestanden.

Validatiecontroles

ControleWat het onderscheptPoortlabel
Leeg/blancoModel retourneerde een lege string of witruimte[GATE] empty
BronherhalingModel retourneerde de originele Engelse invoer[GATE] source-echo
HallucinatielusHerhaalde trigrampatronen (bijv. "Qo' Qo' Qo'")[GATE] hallucination
Lengte-inflatieUitvoer is aanzienlijk langer dan de bron[GATE] length
SchriftconformiteitVerkeerd schrift voor de doellocale[GATE] script
ICU meervoudscategorieënOntbrekende vereiste meervoudsvormen voor de locale[GATE] icu-plural

Leeg/Blanco

Verwerpt vertalingen die lege strings, uitsluitend witruimte of null zijn. Dit onderschept modellen die niets retourneren voor moeilijke sleutels.

Bronherhaling

Detecteert wanneer het model de Engelse brontekst retourneert in plaats van deze te vertalen. Komt vaak voor bij korte strings en onvoldoende gespecificeerde prompts.

Hallucinatielus

Analyseert trigrampatronen (3 tekens) in de uitvoer. Als een trigram meer dan een drempelaantal keren herhaalt ten opzichte van de uitvoerlengte, wordt de vertaling verworpen. Dit onderschept degenereerde uitvoer zoals "Qo' Qo' Qo' Qo' Qo'".

Lengte-inflatie

Verwerpt vertalingen waarbij de uitvoerlengte maxLengthRatio × source length overschrijdt (standaard: 4×). Dit onderschept modelhallucinaties die muren van tekst produceren voor een korte invoer.

Configureerbaar via maxLengthRatio in uw configuratie.

Schriftconformiteit

Voor locales met een geconfigureerd script-veld (bijv. "script": "cans" voor Plains Cree Syllabics), wordt gevalideerd dat de uitvoer niet-ASCII-tekens bevat die passend zijn voor het doelschrift. Uitvoer die uitsluitend Latijnse tekens bevat voor een Arabische, CJK- of Syllabics-locale wordt verworpen.

Wat er bij een fout gebeurt

  1. De mislukte vertaling wordt naar stderr gelogd met een [GATE]-prefix, de sleutelnaam, de reden en een voorvertoning van de waarde
  2. De sleutel wordt niet naar het localebestand geschreven
  3. De herprobeercascade wordt geactiveerd (zie hieronder)
[GATE] hero.title: source-echo — "Welcome to our platform"
[GATE] nav.about: hallucination — "À À À À À À À À"

Herprobeercascade

Wanneer een batch mislukt (JSON-parsefout of afwijzingen door de kwaliteitspoort), probeert champollion het opnieuw met progressief kleinere batches:

Full batch (80 keys) → parse error
└→ Half batch (40 keys) → 2 failures
└→ Individual keys (1 each) → isolates the 2 problem keys

Het herprobeerbudget wordt begrensd door maxRetries (standaard: 3, per taal configureerbaar). Dit voorkomt ongecontroleerde tokenuitgaven voor sleutels die consequent mislukken.

Na het uitputten van de herprobeerpogingen worden de probleemsleutels gelogd en overgeslagen. Ze worden opnieuw geprobeerd bij de volgende sync-uitvoering.

Promptcaching

Het systeembericht (register, grammaticaregels, stijlnotities) wordt gescheiden van het gebruikersbericht (de te vertalen sleutels). Deze scheiding is bewust:

  • Het systeembericht is identiek voor alle batches voor een gegeven locale
  • Providers zoals Anthropic en Google cachen herhaalde systeemberichten
  • Resultaat: de eerste batch betaalt de volledige tokenkosten, volgende batches betalen alleen voor het gebruikersbericht

Dit kan de tokenkosten aanzienlijk verlagen voor projecten met veel batches.

ICU MessageFormat-validatie

Het integrity-commando valideert ICU MessageFormat-meervoudspatronen aan de hand van CLDR-meervoudsregels. Als uw bronbestand ICU-syntaxis gebruikt zoals:

"items": "{count, plural, one {# item} other {# items}}"

Champollion verifieert dat vertaalde versies alle vereiste meervoudscategorieën voor de doellocale bevatten. Arabisch vereist bijvoorbeeld zes categorieën (zero, one, two, few, many, other) — niet alleen one en other.

Voer champollion integrity uit om de meervoudsvolledigheid voor alle locales te controleren.

Terminologiehandhaving

Voor gecoachte paren met een woordenboek voert champollion na de vertaling een terminologiecontrole uit. Nadat de kwaliteitspoort is geslaagd, wordt geverifieerd of het LLM de vereiste woordenboektermen daadwerkelijk heeft gebruikt.

[TERM] en→fr: 2 term violation(s)
• hero.title: "dashboard" → expected "tableau de bord" but got "panneau de contrôle"

Terminologieovertredingen zijn waarschuwingen, geen blokkerende fouten. De vertaling wordt nog steeds naar schijf geschreven. Dit is bewust — het LLM kan geldige redenen hebben om een alternatief te kiezen (context, grammatica), en blokkeren op termijnafwijkingen zou meer schade aanrichten dan goed doen.

Om overtredingen te verhelpen, werkt u het coachingwoordenboek bij of bewerkt u het localebestand handmatig.


Zie ook