Translatable – ORM-agnostic internationalization for Python using JSON columns
Translatable is a Python library providing ORM-agnostic internationalization (i18n) support by storing translations in JSON columns, allowing developers to handle multilingual content without database schema changes.
Background
- **Translatable** is an open-source Python library that lets developers store multilingual content (e.g., product names, descriptions) directly in JSON columns in a database, rather than using separate translation tables.<br>- It works with SQLAlchemy, Django ORM, and other Python ORMs, making it "ORM-agnostic."<br>- **Why it matters**: Traditional i18n approaches in Python often require complex relational schemas (one row per locale), which can slow down queries and complicate code. Translatable offers a simpler, JSON-based alternative that keeps each translatable field inside a single column—a pattern already popularized by Rails' `mobility` gem and Laravel's `spatie/laravel-translatable`.<br>- This approach is especially useful for small-to-medium projects or apps that don't need heavy multi-language querying (e.g., filtering by translated text).