Languages after 0.5: take them up in speaker order (the ordering from #269) #1055

Open
opened 2026-10-25 16:29:14 +00:00 by tiagoagueda · 1 comment
Owner

Takes over the ordering from #269 when it closes. #269 decided that the order in which Postulo takes up languages is set by how many people speak them, not by continent. Its decisions of 2026-10-01 and #728 then set 0.4's and 0.5's languages explicitly. This issue keeps the speaker ordering for whatever comes after 0.5.

The rule

  • Every language is scaffolded: its catalogue exists with a slot for every string, in the core, the plugins and the extensions. An empty or draft language is not offered until somebody starts it (language_choices).
  • A release requires complete only the languages in SELECTED for its line (src/postulo/core/messages_tool.py). Drafts count. A later line keeps every language of the line before it.
  • When a release adds languages, take them in speaker order, from the list below, unless the release's own issue says otherwise.
  • Russian is excepted by the maintainer's decision of 2026-10-01. It is scaffolded like every other language and required by no release.

Selected so far

  • 0.4: the 39 European and Caucasus languages.
  • 0.5: 0.4's plus en-CA, es-MX, fr-CA, az, be, cnr, fo, kk, nn, rm, zh-Hans, zh-Hant, ar, hi, ur, bn and id: 56 in all.

The order for what comes next

Figures are approximate and include second-language speakers. They order the list; they are not a promise.

  1. Japanese ~125M, Vietnamese ~85M, Filipino ~83M, Korean ~82M, Hausa ~80M, Persian ~80M
  2. Marathi, Telugu, Tamil, Punjabi, Gujarati, Kannada; Swahili ~72M; Thai ~60M
  3. Malay, Uzbek; Yoruba, Igbo, Amharic, Zulu, Xhosa, Afrikaans, Somali, Oromo, Kinyarwanda, Shona, and the rest of the African set (#70)
  4. Nepali, Sinhala, Burmese, Khmer, Lao; Tigrinya; Hebrew; Tamazight/Kabyle
  5. Quechua, Guaraní, Aymara
  6. Europe's regional and minority languages: #348 (1.0.0, or sooner if a translation is contributed)

Gates

  • Script: manage.py check_fonts must report the language's script as drawable. CJK is an opt-in build argument (#74); Thai, Devanagari, Bengali and Nastaliq are in the default image.
  • Direction: right-to-left layout exists since #67. Hebrew and Persian need no more than their catalogues and a check.
  • Line breaking for CJK and Thai, and the language picker for regional variants, are their own issues: #1052 and #1053. Urdu's Nastaliq is #1054.

No milestone: this is the list a release is planned from, and it closes only if the ordering is retired.

Takes over the ordering from #269 when it closes. #269 decided that the order in which Postulo takes up languages is set by **how many people speak them**, not by continent. Its decisions of 2026-10-01 and #728 then set 0.4's and 0.5's languages explicitly. This issue keeps the speaker ordering for whatever comes after 0.5. ## The rule - Every language is **scaffolded**: its catalogue exists with a slot for every string, in the core, the plugins and the extensions. An empty or draft language is not offered until somebody starts it (`language_choices`). - A **release** requires complete only the languages in `SELECTED` for its line (`src/postulo/core/messages_tool.py`). Drafts count. A later line keeps every language of the line before it. - When a release adds languages, take them in **speaker order**, from the list below, unless the release's own issue says otherwise. - **Russian is excepted** by the maintainer's decision of 2026-10-01. It is scaffolded like every other language and required by no release. ## Selected so far - **0.4:** the 39 European and Caucasus languages. - **0.5:** 0.4's plus `en-CA`, `es-MX`, `fr-CA`, `az`, `be`, `cnr`, `fo`, `kk`, `nn`, `rm`, `zh-Hans`, `zh-Hant`, `ar`, `hi`, `ur`, `bn` and `id`: 56 in all. ## The order for what comes next Figures are approximate and include second-language speakers. They order the list; they are not a promise. 1. **Japanese** ~125M, **Vietnamese** ~85M, **Filipino** ~83M, **Korean** ~82M, **Hausa** ~80M, **Persian** ~80M 2. **Marathi**, **Telugu**, **Tamil**, **Punjabi**, **Gujarati**, **Kannada**; **Swahili** ~72M; **Thai** ~60M 3. **Malay**, **Uzbek**; **Yoruba**, **Igbo**, **Amharic**, **Zulu**, **Xhosa**, **Afrikaans**, **Somali**, **Oromo**, **Kinyarwanda**, **Shona**, and the rest of the African set (#70) 4. **Nepali**, **Sinhala**, **Burmese**, **Khmer**, **Lao**; **Tigrinya**; **Hebrew**; **Tamazight/Kabyle** 5. **Quechua**, **Guaraní**, **Aymara** 6. Europe's regional and minority languages: #348 (1.0.0, or sooner if a translation is contributed) ## Gates - **Script:** `manage.py check_fonts` must report the language's script as drawable. CJK is an opt-in build argument (#74); Thai, Devanagari, Bengali and Nastaliq are in the default image. - **Direction:** right-to-left layout exists since #67. Hebrew and Persian need no more than their catalogues and a check. - **Line breaking** for CJK and Thai, and the **language picker** for regional variants, are their own issues: #1052 and #1053. Urdu's Nastaliq is #1054. No milestone: this is the list a release is planned from, and it closes only if the ordering is retired.
tiagoagueda added this to the 0.5.0 milestone 2026-10-25 17:04:12 +00:00
tiagoagueda removed this from the 0.5.0 milestone 2026-10-28 13:34:30 +00:00
Author
Owner

Taken off 0.5.0: this is the standing ordering for languages after 0.5, and it closes only if the ordering is retired. Its gates for 0.5 (#1052, #1053, #1054) are merged.

One discrepancy, for whoever picks the next languages: the rule above says every language is scaffolded, but the next ones in the order (ja, ko, vi, fil, fa, he) have no catalogue in src/postulo/locale yet.

Taken off 0.5.0: this is the standing ordering for languages after 0.5, and it closes only if the ordering is retired. Its gates for 0.5 (#1052, #1053, #1054) are merged. One discrepancy, for whoever picks the next languages: the rule above says every language is scaffolded, but the next ones in the order (ja, ko, vi, fil, fa, he) have no catalogue in `src/postulo/locale` yet.
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
Postulo/postulo#1055
No description provided.