Godfrey Njoroge ·
The Swahili Clock: Why Saa Tisa Asubuhi Isn't 9 AM
Contents
Here's a translation trap that catches AI tools and inexperienced translators alike: in Swahili, "saa tisa asubuhi" does not mean nine o'clock in the morning. It means three o'clock in the morning. Get this wrong in a dub or a subtitle and you've told your audience a meeting is six hours away from when it actually is.
Why the offset exists
The Swahili clock counts hours from sunrise and sunset, not from midnight the way the international 12/24-hour clock does. Since sunrise in East Africa is reliably close to 6:00 AM year-round, "saa moja" (hour one) lands at 7:00 AM international time - one hour after sunrise - not 1:00 AM or 1:00 PM. Every hour on the Swahili clock is offset by six hours from the number you'd expect if you translated the digit literally.
A few real examples:
- "Saa moja asubuhi" (hour one, morning) = 7:00 AM
- "Saa nne" (hour four) = 10:00 AM
- "Saa tisa mchana" (hour nine, daytime) = 3:00 PM
- "Saa kumi na moja jioni" (hour eleven, evening) = 5:00 PM
Notice the pattern: subtract six from the stated hour (wrapping around a 12-hour cycle) and you get the international time. It's a real, internally consistent system - it's just a different reference point, and a literal digit-for-digit translation gets it backwards.
Why this breaks AI translation specifically
Generic machine translation models are trained overwhelmingly on text, and most Swahili text in the wild - news articles, Wikipedia, formal documents - uses the international clock or spells times out in digits, not the spoken "saa" convention. A model that's never seen enough real spoken-Swahili time expressions in training data will translate "saa tisa" as "hour nine" and stop there, missing the offset entirely. It's not a rare edge case either - clock references show up constantly in call recordings, interviews, appointment confirmations, and everyday dialogue, which is exactly the kind of audio a dubbing or transcription service processes all day.
How we handle it
This is exactly the kind of domain-specific rule that separates a translation tool from a translation system. Kauli's AI translation step is explicitly instructed to catch and convert every "saa" time expression using the real offset - not asked to "do its best," told the actual rule. And because every AI-drafted translation is then checked by a human editor against the source audio before delivery, a clock reference that somehow still slips through gets caught by a person, not shipped to a client as a confidently wrong six-hour error.
It's a small detail. It's also exactly the kind of small detail that makes the difference between a dub that sounds like it was made by someone who understands the language and one that sounds like it was run through a generic translator and shipped without anyone checking.