Skip to content

91 translation fidelity findings on main that the freshness gate passes as current #75

Description

@os-zhuang

Blocked-by: #68

(PM state, repo:objectos seat 2026-08-19: the #74 Blocked-by line above was exhausted — #74 merged — and is replaced by the live upstream. The measurements below were taken at a132376 and have moved; re-measured numbers and the re-priced scope are in the dispatch-review comment, residue listed in #135. Body otherwise unchanged from the filer.)

Surfaced by the output validator added in #74. Filed rather than fixed: the fix
is a translation pass, not a code PR. Every one of these files is a generated
artifact, AGENTS.md forbids hand-editing them, and
check-translation-ownership.mjs rejects a PR that mixes translations with
anything else.

What was measured

On a132376, node .github/scripts/check-translation-output.mjs --report
reports 91 findings across 84 files:

RuleFindingsWhat it means
fence73a fenced code block differs from the English source
length12prose length outside ±40% of what that locale runs at
url6links to a page the English page never references

unsafe is 0 — the corpus is clean of markup that must never render.

Why this is not the stale backlog

83 of the 84 files are not stale. They carry a current source_sha, so
check-translations.mjs passes them and the worklist does not include them.
Provenance was never fidelity: these were derived from the current English and
edited during derivation.

Two representative findings:

  • content/docs/resources/support.de.mdx — the support-ticket template inside a
    code fence reports ObjectOS version: 10.2.0. English says 14.7.0. A German
    reader following this page files a ticket claiming a version that is four
    majors old.
  • content/docs/resources/license.{de,es,fr,ja,ko}.mdx — five locales added the
    same sentence linking to /docs/reference/security#data-residency. The
    English license page makes no such cross-reference. Five separate locale files
    agreeing on content the source does not have is one pass inventing it once.

The length extremes are truncation, not language: positions.de.mdx is 0.30x its
English source and is missing the entire closing migration table — a reader of
the German page never learns the legacy role vocabulary was renamed.

What closing this looks like

Re-derive the affected pages. The list is the check's own output:

node .github/scripts/check-translation-output.mjs --report

One decision for whoever runs it: bumping GUIDE_REV in
check-translations.mjs marks all 256 translations for retranslation and would
clear this debt as a side effect. #74 deliberately did not bump it — that PR
changed how the guide is enforced, not what to translate — but a pass large
enough to fix 84 files may be the moment to.

Until then the debt is reported, not blocking: #74 gates the locale files a PR
changes, so this shrinks as pages are re-derived instead of demanding a
flag-day cleanup.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions