I recently got tired of the "static string trauma" that comes with traditional i18n in Go. We've all been there:
1. Merge Hell: Two devs add a translation to en.json, and Git gives up. 2. Context Vacuum: Sending a JSON to a translator (or LLM) and getting "Register" translated as a Noun when it should be a Verb. 3. Complex Logic: Building plural rules and gender-aware sentences inside Go code instead of the data.
So I built MBEL.
It’s a standalone DSL (with its own Lexer/Parser) that treats translations as programmable logic blocks, not just dead strings.
# Why use it?
* AI-Native: First-class support for AI\_Context and AI\_Tone. We feed this directly to LLMs to guarantee deterministic translations. * Programmable logic: Plurals, Ranges (\[0-10\] => "low"), and Context blocks (\[male\] => "Mr.") are defined inside the DSL. * Go-First SDK: High-performance runtime with Hot-Reload (watcher) out of the box. * CI/CD Ready: Professional toolchain with mbel lint, fmt, and diff.
I’ve also prepared a full technical suite in 9 languages (Manuals, FAQs, Tips) to show this isn't just a weekend script, but a production-ready ecosystem.
Repo: [https://github.com/makkiattooo/MBEL](https://github.com/makkiattooo/MBEL)
I’d love to hear your thoughts on the DSL approach!