Skip to content

Fill in missing translations with AI-assisted drafts - #3133

Open
drgrice1 wants to merge 1 commit into
openwebwork:developfrom
drgrice1:claude-code-translations
Open

Fill in missing translations with AI-assisted drafts#3133
drgrice1 wants to merge 1 commit into
openwebwork:developfrom
drgrice1:claude-code-translations

Conversation

@drgrice1

Copy link
Copy Markdown
Member

Fill in empty msgstr entries in the 13 non-English locale .po files using Claude, following each file's own pre-existing terminology conventions where they existed. Also remove leftover dummy "tr: <English>" placeholder stubs that had been inserted.

This matches the corresponding pull request to PG, and is an approach to obtaining full translation. I obviously cannot attest to how good the translations are, and these should be reviewed by native speakers.

Confidence notes per locale, for reviewers:

  • en-GB: highest confidence. Not a translation — a deterministic American-to-British spelling/terminology substitution (colour, behaviour, etc.) applied via word-boundary matching against the source corpus. 98 of 3189 strings actually changed; everything else (placeholders, HTML, punctuation) is byte-identical to en.po.
  • fr-CA, tr, ko, zh-CN, ru-RU, cs-CZ, he-IL: moderate-to-high confidence. Each file already had substantial pre-existing human-translated coverage (roughly 15-45% of strings) before this pass; new strings were translated to match that file's own established terminology rather than inventing fresh vocabulary.
  • fr, es, el, hu, de: standard confidence. These files were nearly or fully empty of prior translation, so terminology (e.g. fr's usager/courriel/devoir house style) was chosen fresh this session and has no prior human precedent to anchor it — worth extra scrutiny from a native reviewer.
  • zh-HK: standard confidence for the ~3120 newly-translated strings, with two caveats worth flagging to reviewers. First, of the 96 strings that already had non-blank msgstr values before this session, 27 turned out to be Turkish/French text (some further garbled into nonsense CJK-range characters), almost certainly a legacy Transifex cross-locale data bleed unrelated to this project; those were identified and retranslated into Chinese rather than left as false "already covered" entries. Second, the remaining ~69 legitimately-Chinese pre-existing entries are in Simplified script, while all new entries added this session are in Traditional script (matching what "zh-HK" is supposed to mean) — this pre-existing Simplified/Traditional split was deliberately left alone rather than silently rewritten, and should be reconciled by a native reviewer.
  • he-IL: standard confidence, with one caveat already fully resolved. A latent bug in the batch-fill tooling (it only checked the first line of a multi-line-wrapped msgstr field to decide "is this blank") transiently corrupted 29 pre-existing entries during the first batch; all 29 were recovered from git history and verified, and the tooling was fixed before continuing. Confirmed via placeholder audits that no other locale in this project was affected by the same bug.

Fill in empty msgstr entries in the 13 non-English locale .po files
using Claude, following each file's own pre-existing terminology
conventions where they existed.  Also remove leftover dummy `"tr:
<English>"` placeholder stubs that had been inserted.

This matches the corresponding pull request to PG, and is an approach to
obtaining full translation. I obviously cannot attest to how good the
translations are, and these should be reviewed by native speakers.

Confidence notes per locale, for reviewers:

- en-GB: highest confidence. Not a translation — a deterministic
  American-to-British spelling/terminology substitution (colour,
  behaviour, etc.) applied via word-boundary matching against the
  source corpus. 98 of 3189 strings actually changed; everything else
  (placeholders, HTML, punctuation) is byte-identical to en.po.
- fr-CA, tr, ko, zh-CN, ru-RU, cs-CZ, he-IL: moderate-to-high
  confidence. Each file already had substantial pre-existing
  human-translated coverage (roughly 15-45% of strings) before this
  pass; new strings were translated to match that file's own
  established terminology rather than inventing fresh vocabulary.
- fr, es, el, hu, de: standard confidence. These files were nearly or
  fully empty of prior translation, so terminology (e.g. fr's
  usager/courriel/devoir house style) was chosen fresh this session
  and has no prior human precedent to anchor it — worth extra
  scrutiny from a native reviewer.
- zh-HK: standard confidence for the ~3120 newly-translated strings,
  with two caveats worth flagging to reviewers. First, of the 96
  strings that already had non-blank msgstr values before this
  session, 27 turned out to be Turkish/French text (some further
  garbled into nonsense CJK-range characters), almost certainly a
  legacy Transifex cross-locale data bleed unrelated to this project;
  those were identified and retranslated into Chinese rather than
  left as false "already covered" entries. Second, the remaining ~69
  legitimately-Chinese pre-existing entries are in Simplified script,
  while all new entries added this session are in Traditional script
  (matching what "zh-HK" is supposed to mean) — this pre-existing
  Simplified/Traditional split was deliberately left alone rather
  than silently rewritten, and should be reconciled by a native
  reviewer.
- he-IL: standard confidence, with one caveat already fully resolved.
  A latent bug in the batch-fill tooling (it only checked the first
  line of a multi-line-wrapped msgstr field to decide "is this
  blank") transiently corrupted 29 pre-existing entries during the
  first batch; all 29 were recovered from git history and verified,
  and the tooling was fixed before continuing. Confirmed via
  placeholder audits that no other locale in this project was
  affected by the same bug.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant