Choose the next language by how many people speak it, not by which continent it is on #269
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#269
Loading…
Add table
Add a link
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
Which language Postulo learns next is decided by how many people speak it, not by which
continent it is on. #70, #71 and #72 divided the world into Africa, Asia and South America,
and the rest; that division is replaced by this ordering, and those three issues are
re-scoped below rather than closed.
Why geography failed, concretely
Russian has no catalogue. Roughly 255 million speakers, and it is named in none of the
three issues — not in Africa, not in "Asia and South America", not in "the rest of the
world". Russia straddles two continents and each list assumed the other carried it. It is not
in
src/postulo/locale/at all.That is not an oversight to patch; it is what happens when the organising principle is a map.
A continent is also not a unit of work: #70 is 29 catalogues at about 1,790 strings each —
roughly 52,000 translations — for a milestone due in twenty-five days that holds
twenty-four other issues, while the single largest sweep this project has ever done was 110
strings across 36 languages.
Ordering by speakers spends the same effort on more people, and it cannot lose a language
between two lists.
Where the catalogues actually stand
bg bs ca cs cy da de el es et eu fi fr_FR ga gl hr hu hy is it ka lb lt lv mk mt nb nl pl pt_BR pt_PT ro sk sl sq sr sv tr ukaf ak am ar bm ee ff ha ig kab ln mg nr ny om rw sn so ss st sw ti tn ts ve wo xh yo zuru,zh,hi,bn,ja,ko,vi,id,ur,fa,th.An empty catalogue costs nothing, because
accounts/forms.py::language_choicesdoes notoffer a language until somebody starts it. That is what makes this re-ordering free: no
half-finished language is ever visible to anybody.
Two gates that outrank the speaker count
Speaker order sets the priority. It does not override these, and the current plan violates
both.
Fonts (#74). Han, Devanagari, Bengali, Tamil, Thai, Khmer and Ge'ez need glyphs that ship
— #74's title says it: a declared package is not a drawn glyph. Mandarin has more speakers
than anything else here and still waits, because a page of tofu boxes is worse than the same
page in English.
Right-to-left (#73, #67). Arabic, Urdu, Persian and Hebrew need the layout before the
catalogue.
aris currently in #70 at 0.4.0, while the RTL layout work is at 0.6.0 — thefirst right-to-left language is scheduled two milestones before the thing it depends on. That
is a bug in the plan regardless of which ordering wins.
The tiers
Speaker figures are approximate and include second-language speakers; they order the list,
they are not a promise.
Tier 1 — 0.4.0. Nothing blocks these.
Latin or Cyrillic, no new font work, no RTL.
bg,mk,sr,uk.haandswalready scaffolded.Afrikaans, Somali, Oromo, Kinyarwanda, Shona, Sesotho, Setswana, Wolof, Malagasy and the
others.
Tier 2 — 0.5.0, gated on #74.
before the fonts land.
Tier 3 — 0.6.0, gated on #73 and #67.
kab) — also carved out of #70.1.0.0
machine translation, not a place in this ordering.
that issue worth keeping.
What changes on the three existing issues
ar,kab,amandtileave it for Tiers 2 and 3, so it can close when the ones that are notblocked are done.
(
ur,fa,he) move to Tier 3. Quechua, Guaraní and Aymara are Latin-script and may bepulled into Tier 1 by whoever starts it.
a speaker adding a language without waiting for a developer. That is what makes the tail
reachable at all, and Weblate is already running for it.
What does not change
draftuntil a speaker reviews it, and stays out oflanguage_choicesuntilsomebody starts it.
release commit.
tests/test_translations.py::test_every_european_union_language_stays_completestill hard-gates the 24 EU languages on every commit, and its conflict with the three-language working
rule is still unresolved. This issue does not fix that and should not be read as having
done so.