Languages: every language of Africa #70
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.
Blocks
Depends on
#71 Languages: Asia and South America
Postulo/postulo
#67 Right-to-left layout, so Arabic and Hebrew can be read
Postulo/postulo
Reference
Postulo/postulo#70
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
Where this follows from
#43 set the scope: the 24 official languages of the European Union for 0.2.0, and the rest
of the world in phases afterwards. This is the first of those phases, now given a milestone
of its own rather than living inside one issue.
Shape
The languages. Arabic, Swahili, Amharic, Hausa, Yoruba, Igbo, Zulu, Xhosa, Afrikaans,
Somali, Oromo, Tigrinya, Shona, Sesotho, Setswana, Kinyarwanda, Wolof, Malagasy, Berber
(Tamazight), and the rest — French and Portuguese, already carried from 0.2.0, cover a
great deal of the continent on their own, which is worth saying because it means the gap is
smaller than the map suggests.
What a language costs, and what it does not. Every user-facing string is already
wrapped and
scripts/messages.pyalready writes a slot in every catalogue, so a language isa catalogue and nothing else. Machine-assisted first drafts, flagged
draftuntil a speakerhas read them (
docs/TRANSLATING.md), the same as the 24 in 0.2.0: a wrong translationsomebody can fix beats an English gap nobody notices.
Right-to-left arrives here. Arabic is the first language Postulo carries that is not
read left to right, and it is #67, which is why that now sits in this milestone too. The
layout work is done once and every later right-to-left language is then a catalogue.
What has to be checked per language, not assumed:
scripts/messages.pyhas to write the right number of slots and
checkhas to insist they are all filled.USE_L10Nsupplies and whichnobody looks at until they are wrong.
so every built-in theme carries the section titles for every language here.
browser and in the PDF WeasyPrint produces. A missing glyph is a box, and a box on
somebody's CV is worse than English.
Classification
Enhancement. Not breaking: more catalogues, no code path changes.
Depends on
#67, for right-to-left, which Arabic needs.
Open question
The rest of the European continent — Ukrainian, Turkish, Norwegian, Icelandic, Serbian,
Bosnian, Albanian, Macedonian, Georgian, Armenian, Basque, Catalan, Galician, Welsh,
Luxembourgish — was phase 2 in #43 and is not named in any of the three milestones now set.
As it stands it falls into 0.5.0, behind Asia and South America. Worth deciding whether it
belongs here in 0.3.0 instead, since several are a short step from catalogues that exist.
Infrastructure landed on
0.3.0ase90f8de. The issue stays open for the translations.Done
one African state, plus the cross-border lingua francas that outrank most of those in
speakers.
name, its gettext plural rule (Arabic six forms, Wolof/Igbo/Shona/Bamanankan one), and its
script.
blank because no one country is uncontestedly their home.
fonts-dejavu-core— Latin, Greek, Cyrillic and nothing else — so an Amharic or TigrinyaCV rendered in it would have been a page of empty boxes.
fonts-noto-coreis added andtests/test_fonts.pyholds the image's fonts to the languages actually offered.twenty-nine exist and are empty, so none is listed yet; translate one string and it
appears with its completion percentage.
wrong for one that has just started. The EU set must stay complete; every language must
have a correct plural rule, a direction and a page that renders; an unstarted language
must not be offered.
Outstanding
That is the bulk of this issue and it is not a single sitting's work. It needs a decision
about how: machine-assisted drafts a phase at a time in the order the languages matter, a
translation platform (#43's second open question proposed Weblate once there is more than a
handful of translators), or waiting for speakers. The infrastructure is done either way, and
each language is now a catalogue and nothing else.
Moved to 0.4.0, and the open question at the bottom of this issue is answered: the rest of Europe goes to 0.3.0 as #118, rather than falling behind Asia and South America by default.
So the order is now: the 24 EU languages (0.2.0, done) → the rest of Europe (0.3.0) → Africa (0.4.0) → Asia and South America → worldwide.
Nothing here is blocked by it. #67 is closed, so right-to-left is done and waiting rather than pending, which was this issue's only dependency.
Re-scoped by #269: this issue narrows to the Latin-script African languages, which are
blocked by nothing and stay in 0.4.0.
arandkableave it for Tier 3 (0.6.0), because right-to-left layout (#73, #67) has toland before the catalogue does —
arwas scheduled two milestones ahead of the work itdepends on.
amandtileave it for Tier 2 (0.5.0), because Geʽez needs the fonts (#74).That carve-out is what lets this issue close on the languages it can actually reach, instead
of waiting on two milestones' worth of layout and font work for four of its twenty-nine.
Moved from 0.4.0 to 1.0.0: a milestone due in weeks cannot also hold twenty-five catalogues filled by hand.
Since the re-scope above this is the Latin-script set — twenty-five languages, not twenty-nine — so the figures in the first comment are high by four languages' worth. It is still tens of thousands of translations, and the comment's own conclusion stands: it needs a decision about how (machine-assisted drafts in order of priority, a translation platform, or speakers) before it needs a date.
Nothing is blocked by the delay. A language is not offered until somebody starts it — the gate is
accounts/forms.py::language_choices— so the empty catalogues sit there costing nothing, andscripts/messages.py extractkeeps adding each new string to all sixty-eight sets whatever milestone this is in. A language offered half-translated would be worse than one not offered yet.Worth noting: the four carved out by #269 are still in 0.5.0 (
am,ti) and 0.6.0 (ar,kab), so they now land before the Latin-script set they were carved out of. That may be right — they were carved out for layout and font reasons, not translation ones — but it is the opposite of the order the carve-out assumed, and is worth a deliberate look rather than being left as a side effect of this move.