Languages: the rest of the world, and the process that makes it possible #72
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#71 Languages: Asia and South America
Postulo/postulo
Reference
Postulo/postulo#72
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Decision
Shape
Whatever is left once Europe, Africa, Asia and South America are carried: the rest of the
European continent if it has not been pulled forward (see the open question on the African
languages issue), North American and Caribbean languages beyond English, Spanish and French
— Haitian Creole, Navajo, Inuktitut, Greenlandic — and the languages of Oceania: Māori,
Samoan, Tongan, Fijian, Tok Pisin, Hawaiian.
This is where "every language" stops being a list and starts being a process. The point
of the milestone is not to enumerate the tail; it is to make adding a language something a
speaker can do without waiting for a release:
through whatever translation platform #43's second open question settles on, and the
language picker offers it as soon as it is merged.
<select>somebodyscrolls; it needs searching, and it has to show completion honestly so nobody is
surprised by English in the gaps.
complete, and the interface should say so plainly rather than pretending.
milestone where it stops being theoretical.
Classification
Enhancement. Not breaking.
Depends on
The earlier phases, and mostly the tooling they will have forced into existence.
Re-scoped by #269 and moved to 0.6.0.
Under speaker ordering the enumerated tail here — Oceania, the Caribbean, the North American
languages — stops being the point of this issue. Those languages are not next because of
where they are; they are late because of how many people they reach, and #269 says so
directly.
The second half is what survives, and it is the better half:
Read this issue as the process issue it already half is. Weblate is running and holds the 21
components, so most of what that half asks for has somewhere to live.
Final decision on translations (maintainer, 2026-10-01)
What this changes here
This is the process issue, so the two rules about what is required land here.
core/languages.py;scripts/messages.py extractalready writes a slot in every catalogue it finds. A language is still offered only once somebody starts it (accounts/forms.py::language_choices), so a scaffolded language nobody has translated stays invisible.tests/test_language_variants.py::test_every_string_came_across), which the decision does not ask of a development build. So: a per-commit test that every string is present in fr-FR and pt-PT (en-GB is the source), and pt-BR's completeness moves to the release gate.tests/test_translations.py::test_every_european_union_language_stays_complete(markedrelease) holds the 24 languages of the European Union, a fixed list in the test. The decision makes the list a property of the release: the gate should read the languages selected for the version being released, from one place thatCONTRIBUTING.md§ Making a release andscripts/release_tools.pyalso read.draftflag keeps saying which.docs/TRANSLATING.mdcarries a table of phases by release that predates this. It should state these five points instead.tests/test_catalogues.py(fr-fr and pt-pt on every commit, the 24 EU languages under-m release). Their release gate follows the same change.Nothing in the code has been changed for this; it is recorded here as the work the decision implies.
Follow-up to the final decision on translations (maintainer, 2026-10-01)
zh-Hans,zh-Hant).The work is postulo/postulo#347.
The gate changes listed in the comment above are now postulo/postulo#347; the plugin repositories each have an issue named there.
Europe's missing languages, decided (maintainer, 2026-10-01)
Europe's regional and minority languages (#348) are required by 1.0.0 unless a contributed translation arrives sooner, in which case the language is selected for the release it arrives in. That "unless" is this issue's subject: a speaker being able to add a language without waiting for a developer is what lets one of them arrive early.
Landed on main with a green Forgejo CI run. Its entry in the CHANGELOG's Unreleased section ends in (#72).