Interesting question.. No short answer.
The availability of a language isn’t “in the plugin” as such. WordPress provides the dropdown list based on translation completeness in GlotPress. More on that in a moment…
Firstly, Loco Translate will accept any valid language code. Go into Loco Translate > WordPress and click + New language against the first (default) set. Then, enter zu
into the custom language field, select the “System” location (important) and click “Start Translating”.
This creates the default wp-content/languages/zu.mo
file. The existence of this file is essential (even if it’s empty). Without it, you cannot set Zulu as your site language. This is a WordPress matter, and not dictated by Loco Translate.
Instead of zu
you could use either zul
, zu_ZA
or zul_ZA
. It looks like GlotPress has a partially complete project that uses the zul
code, so this may be a better choice of code for future compatibility (if you ever want to use community translations). However, I note that Loco Translate won’t provide the name “Zulu” unless you enter zu
. I’ll look at fixing that in the next release.
Finally there’s the matter of plural forms. Loco Translate uses the default (English-like) plural forms for Zulu, and it seems that WordPress does too. This is indicated by an equation (n!=1) which means it uses two forms (one, other), of which the first is used strictly as a singular. However, I note that Unicode CLDR gives a slightly different form, which (like French) includes zero in the first form.
If the default plural equation is wrong in your opinion, it can be changed by manually editing the PO file header. I can help with that if you need. However, if this is a custom plugin you may find it better to create a separate source strings for zero counts, as these often read better. e.g. “You have no messages” as opposed to “You have 0 messages”.
I’m inclined to keep Loco Translate’s plurals in line with WordPress at this point, because mixing plural equations in the same language will produce unexpected results.