[Docs] No policy tells an outside contributor what to do about the 31 translations #588

Closed
opened 2026-07-22 16:16:37 +00:00 by brenno · 1 comment
Owner

Found in the pre-publication contributor-journey review.

Evidence: .github/PULL_REQUEST_TEMPLATE.md:18-20 requires new UI strings to be "translated in every supported language". CONTRIBUTING.md:94-103 and docs/CHECKS.md:28 confirm all 32 are enforced by test/app_localizations_test.dart. tool/add_l10n.dart:9-13 shows the spec format: the contributor must supply all 31 target strings — the tool inserts, it does not translate, and :146-153 fails the run if any language is missing. A grep for any escape hatch (machine transl|maintainer will|leave the translation) across all *.md returns nothing.

Why this must be fixed before publication: the language list includes Maltese, Irish, Frisian, Papiamento, Latin and Klingon. No outside contributor can produce those. So every pull request that adds a visible string is dead on arrival against a checklist item presented as non-negotiable — and the contributor discovers this as a failing gate rather than as a stated decision. For a project that wants a broader group of people involved, this is the single rule most likely to turn a first contribution into a last one.

Note also that CONTRIBUTING.md:94-103 still says "all 30 other languages", stale since the 32nd language landed in 55baeb5f.

Proposal: one paragraph in CONTRIBUTING.md beside the l10n rule, and one clause in the PR-template checkbox: "Supply Dutch and English; leave the other 30 blank and say so in the pull request. The maintainer fills them in before merge." No tooling change — just name who owns the remaining 30. Fix the 30/31 count while there.

Found in the pre-publication contributor-journey review. **Evidence:** `.github/PULL_REQUEST_TEMPLATE.md:18-20` requires new UI strings to be "translated in every supported language". `CONTRIBUTING.md:94-103` and `docs/CHECKS.md:28` confirm all 32 are enforced by `test/app_localizations_test.dart`. `tool/add_l10n.dart:9-13` shows the spec format: the *contributor* must supply all 31 target strings — the tool inserts, it does not translate, and `:146-153` fails the run if any language is missing. A grep for any escape hatch (`machine transl|maintainer will|leave the translation`) across all `*.md` returns nothing. **Why this must be fixed before publication:** the language list includes Maltese, Irish, Frisian, Papiamento, Latin and Klingon. No outside contributor can produce those. So every pull request that adds a visible string is dead on arrival against a checklist item presented as non-negotiable — and the contributor discovers this as a failing gate rather than as a stated decision. For a project that wants a broader group of people involved, this is the single rule most likely to turn a first contribution into a last one. Note also that `CONTRIBUTING.md:94-103` still says "all 30 other languages", stale since the 32nd language landed in `55baeb5f`. **Proposal:** one paragraph in `CONTRIBUTING.md` beside the l10n rule, and one clause in the PR-template checkbox: *"Supply Dutch and English; leave the other 30 blank and say so in the pull request. The maintainer fills them in before merge."* No tooling change — just name who owns the remaining 30. Fix the 30/31 count while there.
Author
Owner

Opgelost in #656 (gemerged). make check groen op de gerebasede kop.

Opgelost in #656 (gemerged). `make check` groen op de gerebasede kop.
brenno 2026-07-22 17:30:13 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#588
No description provided.