THAIPO.ai
Back to blog

How we make English sound like native Thai (and prove it)

14 July 2026 · ThaiPo

Anyone can translate English into correct Thai. The hard product problem is translating English into Thai that reads like a Thai person typed it, because in a relationship chat the difference is not cosmetic. Textbook Thai from your partner's phone reads as distant, formal, slightly robotic. The whole point of ThaiPo's Native Reply is that the person on the other end forgets a translator exists.

"Sounds native" is a squishy goal, and squishy goals rot prompts. This post is about the engineering that keeps it honest.

What native actually means in Thai chat

  • Particles carry the relationship.ครับ/ค่ะ/นะ/สิ/เลย do work English does with tone of voice. Dropping them is not neutral, it is cold; overusing them is not polite, it is weird. The right particle depends on the speaker's gender, the relationship, and the sentence's mood.
  • Real chat is not written Thai. Nobody types full formal sentences to their partner. Casual spelling (เค for okay), laughter as 555, dropped pronouns, and short bursts are the register.
  • Idioms must land as idioms.A calque, an idiom translated word by word, is the fastest way to sound like a translation. "I'm down" is not about direction.

Prompts are versioned artifacts with regression tests

Our translation instructions are code: numbered versions, frozen into history when they ship. Before any new version ships, a back-testing harness re-runs everyhistorical prompt version against the current test corpus, so we can see not just whether the new prompt is better, but whether anything that used to work regressed. Treating prompt text as "just words" is how quality silently walks backwards; treating it as a versioned artifact with a benchmark makes improvement monotonic-ish, which is the best you get with language.

The eval that matters: could a Thai person tell?

Scoring translations 1 to 10 with a judge model produces flattering noise. Our sharpest eval is a blind discrimination test: show a judge (and periodically, actual Thai readers) a mix of genuine Thai chat messages and Native Reply output, and ask one question: which ones were written by a Thai person? If the classifier cannot beat chance, the output is indistinguishable. When it can, the misclassified examples are the exact bug reports we want, because they come with the tell attached.

Guards, because prompts are not promises

Instructions reduce error rates; they do not eliminate them. So the output passes through checks that catch the failure modes we have actually seen:

  • A calque guard looks for literal idiom transfer and forces a retry when it finds one.
  • A direction guardcatches the model echoing the input language back (greetings are notorious: the model sees "good morning", and outputs another greeting in English rather than a translation) and retries context-free.
  • A never-converse rule, enforced in layers.The worst translator failure is answering the message instead of translating it. Someone types "can you pick me up at 7?" and a naive assistant replies "sure!". The model is instructed it is a wire, not a participant; output shape is validated; and an eval keeps the guarantee from regressing.

The subject-dropping bug

Our favorite failure: Thai drops pronouns wherever context allows, so natural Thai output should too. We pushed nativeness, the model obliged, and third-person reports broke. "He said he misses you" became subjectless Thai that any reader parses as I miss you. In a couples product, a translator that turns reported speech into a first-person confession is not a quality bug, it is a small catastrophe. The fix is a keep-the-subject rule: drop pronouns freely when the subject is the speaker, never when the sentence is about a third person. Nativeness pressure and correctness pressure fight; every rule like this is a treaty line between them.

Asymmetric orthography

Casual spellings ship forward-only. Writing เค for okay makes output feel native, but teaching the reverse direction about every casual variant risks polluting how we read formal text. Each register experiment ships in one direction, measured, before we consider the other.

Memory, sealed per chat

The strongest nativeness signal is not linguistic, it is personal: this chat's nicknames, running jokes, and the words this couple actually uses. ThaiPo mines that vocabulary from each chat and injects it at translation time, which is why output gets more native the longer a chat lives. One hard rule shapes the whole design: memory is keyed to the chat, never to the person, and nothing learned in one chat can ever surface in another. People keep parallel relationships that must stay parallel; a pet name leaking across chats would be an unforgivable breach. So the memory gets deeper inside each chat instead of wider across them.

Does it work?

The blind eval says the gap is small and shrinking, and the field says things the eval cannot: the best compliment the feature gets is silence, weeks of a couple chatting before anyone remembers a bot is in the room. You can judge it yourself against the usual suspects on our comparison page, or just add ThaiPo to a chat and watch what the particles do.

Try it in your own chats

ThaiPo lives inside LINE and translates every message in both directions, free forever. Get started free or add @thaipo.ai as a friend on LINE and it sends your signup link right in the chat.

ThaiPo is operated by Marine Entertainment Co., Ltd. · Docs · Blog · Privacy · Terms · Contact