What LLM Support for Zulu Actually Looks Like Today
9 min read · updated August 11, 2026
Zulu gives you something most low-resource languages do not: a grammatical feature so pervasive and so mechanical that you can count the model’s errors rather than argue about them. Every noun in a Zulu sentence forces agreement on everything that refers to it, and each agreement slot is a separate pass or fail.
The position, in checkable numbers
isiZulu is the most widely spoken home language in South Africa, reported by Statistics South Africa’s census as the first language of roughly a fifth of the population, with a much larger number of second-language speakers across the region (Statistics South Africa). Ethnologue’s totals, which count L2 speakers, run substantially higher again. It is one of eleven official languages, so there is a body of government and legal text in it — which matters, because official status is one of the few reliable predictors of whether a language has any parallel corpus at all.
On corpus share: as with every language on this page, no frontier lab publishes one. The public proxies — Common Crawl’s per-crawl language statistics and the Wikipedia edition sizes — place Zulu well down the list. It is present in FLORES-200 as zul_Latn and in the MasakhaNER datasets, so it is one of the African languages you can at least measure (Adelani et al., TACL 2021).
Noun classes and the concord chain
Zulu is a Bantu language, and Bantu languages sort nouns into classes — roughly fifteen in active use in Zulu, conventionally numbered. The class is marked by a prefix on the noun, and then every other word that refers to that noun carries a matching prefix: the verb, the adjective, the possessive, the demonstrative, the relative.
Take a labelled example. In Abafana abadala bafunda izincwadi zabo — “the older boys are reading their books” — the agreement runs like this:
aba-fana— noun, class 2 (the plural of class 1,umfana, “boy”).aba-dala— adjective, carrying the class 2 concord because it modifiesabafana.ba-funda— verb, carrying the class 2 subject concord.izin-cwadi— a second noun, class 10.za-bo— possessive, carrying the class 10 concord because it agrees with books, not with the possessor.
That last point is the one to hold on to. In English, “their books” agrees with the owners. In Zulu the possessive concord agrees with the thing owned and the stem carries the owner. A model that has learned Zulu as English-with-different-words gets this exactly backwards, and it is trivially visible once you know to look.
Where agreement breaks, and why there
A five-word sentence with two nouns has four concord slots. Longer prose has dozens, and they are not independent — a model that picks the wrong class for the noun gets every downstream concord wrong too, so one error propagates through a clause. This makes Zulu output fail in a characteristic way: not word-salad, but grammatical-looking text with a drifting agreement chain, where the first clause is right and the third refers back with the wrong prefix.
The reason it breaks in that particular place is a coverage argument rather than a mystery. Concord is high-frequency but its correct long-range use is the kind of structure that needs a great deal of text to pin down, because the model has to learn to carry a class feature across intervening material. English has almost no long-range agreement to speak of, so nothing transfers; and Zulu text is thin enough that the model has seen relatively few examples of any given class in any given construction. Loanwords make it worse: a borrowed noun has to be assigned to a class, conventions vary, and the model has seen the borrowing in several classes.
Turn that into a test rather than a complaint. Ask for a paragraph involving several nouns of different classes and one anaphoric reference back to the first noun. Count the concord slots and count the ones that agree. That number, on your own domain vocabulary, is a real quality measure and it takes minutes to produce.
One word, many morphemes
Zulu is agglutinative and writes conjunctively: subject concord, tense, object concord, root and extensions all attach into a single orthographic word. A form like ngiyakuthanda packs “I”, present, “you” and “love” into one token of text.
Two things follow for anyone building a system. Tokenizers trained on Latin-script European text shatter these words into fragments that do not align with morpheme boundaries, so cost per unit of meaning is high — see the token cost of Zulu for that side of it. And keyword search on Zulu behaves badly for the same reason it behaves badly for Finnish or Turkish: the surface forms of one lemma are many and share no common prefix your index can exploit. The general shape of that problem is covered in the NLP assumptions agglutinative languages break.
Building something that works
The realistic split today is that comprehension is decent and generation is not yet publication-grade. Classifying inbound Zulu, routing it, extracting entities and producing an English gist are all workable. Generating Zulu that a first-language reader will accept without editing is not a solved problem, and the agreement chain is why: the errors are the kind a non-speaker cannot see and a speaker cannot unsee.
So build for review rather than for autonomy. Keep the concord test above as a regression check, run it whenever you change model, and treat generated Zulu as a draft with a named reviewer until that test stops finding anything. The same discipline is what makes the crowdsourced corpora described in crowdsourcing training data for a low-resource language usable rather than noisy.
Two adjacent facts that change plans. First, isiZulu and isiXhosa are close enough that a model short of Zulu coverage will drift into Xhosa forms, and language identification will not flag it because the output is still overwhelmingly Zulu. Second, everyday urban speech in and around Johannesburg mixes Zulu with English and with other languages as a matter of course, so a model trained on web text has learned a register that is right for a chat product and wrong for a government notice. Decide which register you want and say so in the system prompt; the model will not infer it from the fact that you asked in Zulu.