DEV Community

J Now
J Now

Posted on

The register problem: why one translation answer isn't enough

I was trying to write something personal to my girlfriend in her first language. Every translation tool I tried gave me one answer with no indication of register — I had no way to tell if the phrase sounded intimate, neutral, or like something from a travel phrasebook.

The same thought expressed in Japanese, Spanish, or Arabic can range from tender to clinical depending on word choice, and a literal translator doesn't surface that distinction. It just gives you a string and moves on.

I built konid to solve this. It returns three options per query — casual, neutral, formal — with the register explained for each and a cultural context note comparing them. Audio pronunciation plays through your speakers directly via node-edge-tts, no API key required.

A real example in Spanish:

Phrase: "I missed you today"

1. [Casual] Te extrañé hoy
   Register: Natural between close friends or partners. Direct and warm.

2. [Neutral] Hoy te eché de menos
   Register: Common in Spain (less so Latin America). Slightly more formal phrasing of the same feeling.

3. [Formal] Lamenté su ausencia hoy
   Register: Formal/written. Would appear in professional correspondence, not personal conversation.

Cultural note: In most Latin American Spanish, option 1 is the default for any personal relationship. Option 3 would read as cold or ironic in a romantic context.
Enter fullscreen mode Exit fullscreen mode

Installs as an MCP server for Claude Code, Cursor, VS Code Copilot, Windsurf, Zed, JetBrains, and Claude Cowork:

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

Also available as a ChatGPT app via Developer mode at https://konid.fly.dev/mcp.

Supports 13+ languages. MIT licensed.

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

Top comments (0)