DEV Community

J Now
J Now

Posted on

When literal translation makes you sound like a stranger

I was drafting a message to my girlfriend in Farsi — something small, 'I missed you today' — and every tool I tried handed me one flat string with no indication of whether it was tender or clinical, spoken or written, something a person would actually say to someone they love.

That's the failure mode of literal translation tools: one answer, no register, no cultural scaffolding, nothing that tells you whether you'd sound warm or weird.

So I built konid. For any phrase you want to express, it returns three options ordered casual to formal, each with a register explanation and a cultural nuance note comparing the options. It also plays audio pronunciation through your speakers using node-edge-tts — no external API key, just sound.

An example of what the output looks like in practice:

Phrase: "I missed you today"
Language: Farsi

1. [Casual] دلم برات تنگ شد — intimate, spoken between close partners; this is what you'd actually say
2. [Neutral] امروز دلم برات تنگ شده بود — slightly more complete grammatically; fine in text
3. [Formal] امروز به یاد شما بودم — distant, used in writing or with someone you'd address respectfully

Cultural note: In Farsi, the casual form is heavily preferred in romantic contexts; the formal register would read as cold or ironic between partners.
Enter fullscreen mode Exit fullscreen mode

Works across 13+ languages — Mandarin, Japanese, Korean, Spanish, French, German, Portuguese, Italian, Russian, Arabic, Hindi, Farsi, and more. Runs as an MCP server in Claude Code, Cursor, VS Code Copilot, Windsurf, Zed, JetBrains, and Claude Cowork. Also installs as a ChatGPT app via Developer mode using the endpoint https://konid.fly.dev/mcp.

For Claude Code the install is one line:

claude mcp add konid-ai -- npx -y konid-ai
Enter fullscreen mode Exit fullscreen mode

MIT licensed. https://github.com/robertnowell/konid-language-learning

Top comments (0)