Files
computer-playbook/tests/unit/python/utils
kevinveenbirkenbachandClaude Opus 5 d104dab9f2 feat(i18n): skip the entries the translator has already refused
A damaged protected span is a deterministic answer for an unchanged source,
so a run that asks again spends a masking pass, a request and an inference
to reach the same verdict. The refusal is now recorded as a
`translation-refused: <engine> damaged-span` annotation in the entry's
comments, naming the engine that produced it, and `pending` skips such an
entry. Gettext drops the annotation when the source changes, so the entry
comes back by itself; a change to the masking or to the damage predicate
does not, and `make i18n-retry` clears the marks so those entries are
offered again. The mark is matched by prefix, so a refusal from another
engine counts and clears too.

Measured on the `core` domain over 34 languages:

  old code           266 requests, 0 translated, 266 discarded
  first pass, new    266 requests, 266 annotations written
  second pass, new     0 requests, nothing to translate

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-26 12:46:14 +02:00
..
…