← Blog
Product8 min read

Mume AI now speaks Hindi, Marathi and Tamil

By Kushal Sharma

Starting today, the whole of Mume AI reads in Hindi, Marathi and Tamil. Not the marketing page with an English app behind it. The chat screen, the model list, the media studio, the settings, the buttons nobody photographs. Pick your language once and it stays picked, on the web and in the app.

Mume AI landing page headline rendered in Hindi: हर AI मॉडल। एक ऐप।
हर AI मॉडल। एक ऐप। The same sentence the English page opens with, written the way a Hindi reader would write it.

The gap this closes

Here is the thing that bothered us. Every serious AI product of the last three years has been, functionally, an English product. The models themselves are multilingual and have been for a while. Ask Claude or Gemini a question in Marathi and you get a good answer in Marathi. The model was never the barrier.

The barrier was everything around the model. The sign-in button. The word "credits". The settings menu. The error message that appears when a file is too large. If you cannot read those, you cannot get far enough to discover that the model would have understood you perfectly.

We watched this happen with people we know. Someone who speaks and writes excellent Marathi, who could get enormous value out of an AI assistant, bouncing off a signup screen. Not because the technology was too hard. Because the technology was in a language they had to work at, and there were a dozen small decisions to make before anything useful happened.

How many people are we talking about

The 2011 Census of India counted roughly 129 million people with any reported ability in English, out of about 1.2 billion. Call it one in ten. Numbers have moved since, and the real figure for people comfortable reading a technical interface in English is lower than the figure for people who studied some English at school.

The same census counted, as mother tongue:

  • Hindi, about 528 million speakers
  • Marathi, about 83 million
  • Tamil, about 69 million in India, plus large communities in Sri Lanka, Singapore, Malaysia and the diaspora

That is roughly 680 million people, and we have not touched Bengali, Telugu, Gujarati, Kannada, Malayalam, Punjabi or Odia yet. India also added hundreds of millions of internet users in the last decade, and almost none of that growth was English-first. It was people arriving on a cheap phone, on a cheap data plan, reading in the language they think in.

This is not a niche to be served eventually. In terms of raw headcount, the people who cannot comfortably use an English-only AI product outnumber the people who can, by a lot.

Language and price are the same problem

Translating the interface is only half of it, and honestly it is the easier half. The other half is the twenty dollars a month.

A twenty dollar subscription is around ₹1,700. For a very large number of people that is a real monthly decision, made harder by having to commit before you know whether the thing is useful. Add a card requirement, in a country that runs on UPI, and you have quietly excluded most of the market before the first message is typed.

So we did the other half first. In July we shipped pay as you go: top up from ₹100, roughly a dollar, with GPay or PhonePe or Paytm or any UPI app. Credits last twelve months. There is no plan to cancel because there is no plan. Every account also gets free credit that refreshes daily, so you can find out whether this is useful to you before spending anything at all.

Put the two together and the arithmetic changes completely. A student in Nashik can read the app in Marathi, put in ₹100 when they have it, and use 300+ models including the expensive frontier ones. No subscription, no card, no English.

Mume AI headline in MarathiMume AI headline in Tamil
Marathi and Tamil. Even the social preview cards are generated per language, which turned out to need its own font work.

What is actually translated

Eight hundred strings, covering the app rather than the shop window. Chat and the composer. The model catalogue and every model page. The media studio. The code editor and the chess board. Settings, credits and the billing history. Sign in and sign up. Error messages, empty states, tooltips, the labels a screen reader announces.

A few things stay in English on purpose, and we would rather say so than let you find out. Model names stay as they are, because Claude Opus 5 is a product name and you need to find the same characters when you compare against the model list. Model descriptions come from the upstream catalogue. Blog posts, including this one, are written in English for now. And the developer API documentation stays English, because its readers are reading code either way.

The architecture, briefly

The interesting decision was where translations live. The obvious approach is to ship every language inside the app and release a new version when you add one. We did not do that, because it makes adding a language an engineering task forever.

English ships inside the app. Everything else is published separately and merged on top, one key at a time.

Plain Text
messages/en.json Firestore ships inside the app published from the CMS English, always present hi, mr, ta ... overrides | | +----------------+------------------+ | merge, key by key missing key -> English | +-------------+-------------+ | | web app Flutter app reads at request reads at startup

Three things fall out of this, and they are the whole reason for the shape.

Nothing can go blank. A key with no translation renders English. A language that is half finished renders the finished half and English for the rest. If Firestore is unreachable the app falls back to the copy inside its own binary, which is always there. There is no state in which a user sees an empty button.

A partial language is safe to publish. That sounds minor and it changes everything about the pace. We do not have to hold a language back until it is perfect. We can put it out at ninety percent and fix the rest in place, with real people telling us which ten percent actually mattered.

Adding a language is not a release. Both clients read the same list of available languages. Publish a new one and it appears in the language picker on the web and in the mobile app, with no deploy and no app store review.

Adding a language takes minutes, not weeks

We built ourselves an admin screen for this. Type a language code, pick a model, press translate. It sends the English strings through our own gateway in batches, four at a time, and shows a progress bar.

Tamil, all 800 strings, took 184 seconds. Nothing was rejected. We read it, then published it.

The part we are quietly proud of is what the pipeline refuses to accept. A machine translation can come back fluent and still be broken in ways a reviewer will never spot. It renames a variable, so a sentence that should read "3 credits left" renders a literal placeholder. It flattens a plural into one form, which is fine in English and wrong in most languages. It drops the tag that made a phrase a link, so the link silently disappears.

So every translation is checked against the original before it is stored. Same variables, same plural structure, same link tags, brand names left alone. Anything that fails is thrown away rather than saved, and that key simply falls back to English. We would rather show you a correct English sentence than a beautiful Tamil one that renders as chat.creditsLeft.

Which model translates best, and a small surprise

We ran four models over the same sample: two from Anthropic, two from Google. All four scored 100 percent on the mechanical checks, which told us exactly nothing. That is the honest limit of automated scoring. It can prove a model is unusable. It cannot prove one is good.

Reading the output did separate them. The word key, as in API key, came back from one model as a rough transliteration and from another as the word for a door key. Two models agreed on the natural Tamil word. That is a judgement no score was going to make for us.

Cost decided the rest. Because we route through our own gateway with our own provider keys, Gemini 3.6 Flash currently costs us nothing for this job, against a few cents on the alternative. Not a large sum either way, but the free option was just as good, so it won.

One bug worth confessing, because it is a good lesson. Our quality score flagged perfectly correct Tamil plurals as untranslated, because the ICU message syntax contains English words like plural and other. A perfect translation scored 67 percent. A quality metric that fires on correct output is worse than no metric at all, because it teaches you to ignore it.

The things that were harder than expected

Word order, mostly. Our landing page said "300+ models from 50+ providers" and we had built that as one fixed phrase. Hindi puts the provider count first. You cannot translate a pre-assembled English sentence, you can only rebuild it, so the two numbers now travel separately and each language assembles its own sentence.

Fonts were the other one. The social preview cards are generated as images on our servers, and the font that draws them has no Devanagari or Tamil glyphs at all. Left alone, a shared link in Hindi would have previewed as a row of empty rectangles, and the place you find that out is somebody else's WhatsApp. Each script now carries its own font.

And numbers. Marathi's default is to render digits in Devanagari numerals, so ₹100 becomes ₹१००. Correct, and genuinely how the language works, but on a screen full of token counts and model prices it reads as a glitch to most people. We chose Latin digits for prices and counts and left prose alone. Reversible, per language, if we hear otherwise.

Where this goes

Bengali, Telugu, Gujarati, Kannada, Malayalam, Punjabi and Odia are the obvious next set, and the machinery is now the easy part. What each one needs is a font check and a native speaker willing to read the output and tell us where it sounds like a robot.

After that, international. Spanish, Portuguese, Indonesian, French, Arabic. Arabic and Urdu need right to left support, which is a real piece of work rather than a row in a table, so those come later and properly rather than sooner and badly.

The three languages live today are machine translated and checked by machine, not yet reviewed line by line by a native speaker. We are saying that plainly rather than pretending otherwise. If you read Hindi, Marathi or Tamil and something sounds stilted or plain wrong, tell us and we will fix it. That feedback is worth more to us than another translation pass.

Pick your language from the switcher in the header, or in settings if you are signed in. Create an account and you get free credits daily, in your own language, without a card.