Live
Black Hat USAAI BusinessBlack Hat AsiaAI BusinessWhat is a Function? Simple Explanation with ExamplesDEV CommunityWe Shipped a RAG Chatbot to 500 Enterprise Tenants. Here's What Actually Broke First.Dev.to AII stopped managing translations manually (and built this instead)DEV CommunityHumans and the retain of control in a world where AI thinks and decides alongside usDev.to AIInsights from GDPS 2026: Enterprise Agents, AI Native, and One-Person CompaniesDev.to AIEstimates on the generalization error of Physics Informed Neural Networks(PINNs) for approximating PDEsDev.to AIBenyar Men's Watches SA and Lige Men's Watches South Africa: Bold Styles for SA MenDev.to AI5 Signs You're Ready to Build Your SaaS (And 3 Signs You're Not)Dev.to AIWhat Is Base64 Encoding and Why Do Developers Use It EverywhereDEV CommunityAnthropic Just Paid $400M for a Team of 10. Here's Why That Makes Sense.DEV CommunitySame Model, Different Environment, Different ResultsDEV CommunityAm I the baddie?lesswrong.comBlack Hat USAAI BusinessBlack Hat AsiaAI BusinessWhat is a Function? Simple Explanation with ExamplesDEV CommunityWe Shipped a RAG Chatbot to 500 Enterprise Tenants. Here's What Actually Broke First.Dev.to AII stopped managing translations manually (and built this instead)DEV CommunityHumans and the retain of control in a world where AI thinks and decides alongside usDev.to AIInsights from GDPS 2026: Enterprise Agents, AI Native, and One-Person CompaniesDev.to AIEstimates on the generalization error of Physics Informed Neural Networks(PINNs) for approximating PDEsDev.to AIBenyar Men's Watches SA and Lige Men's Watches South Africa: Bold Styles for SA MenDev.to AI5 Signs You're Ready to Build Your SaaS (And 3 Signs You're Not)Dev.to AIWhat Is Base64 Encoding and Why Do Developers Use It EverywhereDEV CommunityAnthropic Just Paid $400M for a Team of 10. Here's Why That Makes Sense.DEV CommunitySame Model, Different Environment, Different ResultsDEV CommunityAm I the baddie?lesswrong.com
AI NEWS HUBbyEIGENVECTOREigenvector

I stopped managing translations manually (and built this instead)

DEV Communityby Fabrice GrenouilletApril 4, 20262 min read0 views
Source Quiz

Managing multilingual content has always felt… wrong to me. In most projects, it quickly turns into: duplicated fields ( title_en , title_fr ) messy i18n JSON files constant synchronization issues At some point, I started wondering: why is this even a developer problem? Rethinking the approach Instead of treating translations as something external (keys, files, etc.), I tried a different approach: What if multilingual support was part of the data model itself? So I built a small Airtable-like system where fields are multilingual by design. You write content once, and it becomes available in multiple languages automatically. Example: Title: "Hello world" → fr: Bonjour le monde → es: Hola mundo No keys. No duplication. No sync issues. How it works Each field stores multiple language versions

Managing multilingual content has always felt… wrong to me.

In most projects, it quickly turns into:

  • duplicated fields (title_en, title_fr)

  • messy i18n JSON files

  • constant synchronization issues

At some point, I started wondering: why is this even a developer problem?

Rethinking the approach

Instead of treating translations as something external (keys, files, etc.), I tried a different approach:

What if multilingual support was part of the data model itself?

So I built a small Airtable-like system where fields are multilingual by design.

You write content once, and it becomes available in multiple languages automatically.

Example: Title: "Hello world" → fr: Bonjour le monde → es: Hola mundo

No keys. No duplication. No sync issues.

How it works

Each field stores multiple language versions internally.

On top of that:

  • automatic translation (using GPT)

  • ability to override manually per language

Where it can be used

The system can be accessed:

  • via API

  • or directly inside a templating engine I’m building (Ekit Studio)

So content flows directly into rendering without extra i18n layers.

Why this feels better

This approach shifts the problem:

  • from code → to data

  • from developers → to content structure

And in practice, it removes a lot of friction.

Curious to hear from others

Was this article helpful?

Sign in to highlight and annotate this article

AI
Ask AI about this article
Powered by Eigenvector · full article context loaded
Ready

Conversation starters

Ask anything about this article…

Daily AI Digest

Get the top 5 AI stories delivered to your inbox every morning.

More about

modelavailableversion

Knowledge Map

Knowledge Map
TopicsEntitiesSource
I stopped m…modelavailableversionDEV Communi…

Connected Articles — Knowledge Graph

This article is connected to other articles through shared AI topics and tags.

Knowledge Graph100 articles · 206 connections
Scroll to zoom · drag to pan · click to open

Discussion

Sign in to join the discussion

No comments yet — be the first to share your thoughts!

More in Releases