Languages and dialects

What it takes for one agent to serve users who do not all speak the same variety of the same language.

Why this is a feature and not a setting

Most language support assumes each user picks one language and stays in it. Real users do not. They speak a regional variety that differs from the written standard, they borrow product words from another language mid-sentence, and they expect the interface to turn around when the text does.

Arabic is where this gets forced. It is not one language in practice: a merchant in Cairo and a merchant in the Gulf ask the same question with different words. Voqal handles that in production today, which is why the depth exists at all. The same handling applies wherever a user’s spoken language and the written standard diverge.

What the runtime handles

Answer in the language asked

The agent replies in whatever language the user used. There is no locale switch to set and no separate assistant per market.

Dialect in, standard out

Arabic arrives in whichever regional form the user speaks. It goes back out in Modern Standard Arabic, which every Arabic speaker reads, rather than a dialect that only some of them do.

Code-switching mid-sentence

People mix languages inside one sentence, especially around product and finance vocabulary. A turn is not rejected for being half one language and half another.

Right-to-left rendering

Widgets flip direction: alignment, ordering and the conversation layout itself. A single English chip under an Arabic answer aligns the way that chip should, not the way the paragraph does.

One tool surface

Language affects what the agent says, not what it can do. The same tools, schemas and confirmation rules apply whichever language the turn came in.

Numbers and currency

Figures stay legible in either direction, and arithmetic goes through a calculation tool rather than being produced by the model.

What it looks like

The Voqal SDK answering an Arabic question inside a payments app, with right-to-left widgets
A live Arabic turn in a production payments app: the answer and its widgets laid out right to left.

The voice documentation covers language behaviour on the speech side, and configuration covers theming and direction. For the longer version of how this is built, the blog has running ten Arabic dialects through one pipeline.